From 72eb095e96bc547af7a11a4c2dac33bbdb9f0ba7 Mon Sep 17 00:00:00 2001 From: Zoltan Runyo <zoltan.runyo@ess.eu> Date: Fri, 18 Feb 2022 16:35:58 +0100 Subject: [PATCH] ICSHWI-8665: Personal statistics on Home view --- src/api/SwaggerApi.js | 15 ++++++++++++--- src/views/home/HomeView.js | 11 +++++++++-- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/api/SwaggerApi.js b/src/api/SwaggerApi.js index 517c5957..2394f3e0 100644 --- a/src/api/SwaggerApi.js +++ b/src/api/SwaggerApi.js @@ -805,7 +805,16 @@ export function useAnnouncements() { } export function unpackAnnouncement(announcements) { - const a = { ...announcements }; - console.log(a); - return a; + return { ...announcements }; } + +export function usePersonalStatistics() { + const api = useContext(apiContext); + const method = useCallAndUnpack(api.apis.Statistics.personalStatistics, unpackPersonalStatistics) + + return useAsync({ fcn: method, call: true }); +} + +export function unpackPersonalStatistics(statistics) { + return { ...statistics }; +} \ No newline at end of file diff --git a/src/views/home/HomeView.js b/src/views/home/HomeView.js index 202e9574..21ce478f 100644 --- a/src/views/home/HomeView.js +++ b/src/views/home/HomeView.js @@ -2,8 +2,9 @@ import { Container, Grid, Paper, Button, Box, Typography } from "@material-ui/co import React, { useState} from "react"; import { useGlobalAppBar } from "../../components/navigation/GlobalAppBar/GlobalAppBar"; import { CreateIOC } from "../../components/IOC/CreateIOC"; +import { KeyValueTable } from "../../components/common/KeyValueTable/KeyValueTable"; import { SimpleModal } from "../../components/common/SimpleModal/SimpleModal"; -import { useCreateIOC, useAnnouncements } from "../../api/SwaggerApi"; +import { useCreateIOC, useAnnouncements, usePersonalStatistics } from "../../api/SwaggerApi"; import ReactMarkdown from 'react-markdown' import remarkGfm from 'remark-gfm' import { makeStyles } from '@material-ui/core/styles'; @@ -21,6 +22,7 @@ const useStyles = makeStyles((theme) => ({ export function HomeView() { const [iocFormOpen, setIOCFormOpen] = useState(false); const [announcements] = useAnnouncements(); + const [statistics] = usePersonalStatistics(); const classes = useStyles(); console.log("rendering Own IOCs") @@ -38,7 +40,7 @@ export function HomeView() { <Grid item xs={10}> <Box display="flex" flexDirection="row" p={2} m={1}> <Typography variant="h2"> - Home + My statistics </Typography> </Box> </Grid> @@ -47,6 +49,11 @@ export function HomeView() { <Button variant="contained" color="secondary" onClick={() => { setIOCFormOpen(true) }}>New IOC</Button> </Box> </Grid> + {statistics && + <Grid item xs={12}> + <KeyValueTable obj={{"Number of my IOCs": statistics.numberOfActiveIocs}} variant="table" /> + </Grid> + } </Grid> {announcements?.announcementsText && <Grid container justify="flex-start" className={classes.announcements}> -- GitLab