Add Users' Account Data tab (#276)
* Add Account Data tab in User edit * update readme
This commit is contained in:
committed by
GitHub
parent
44d801a2f5
commit
2a5b59002e
65
src/components/UserAccountData.tsx
Normal file
65
src/components/UserAccountData.tsx
Normal file
@@ -0,0 +1,65 @@
|
||||
import { useDataProvider, useRecordContext, useTranslate } from "react-admin";
|
||||
import { useEffect, useState } from "react";
|
||||
import { Typography, Box, Stack, Accordion, AccordionSummary, AccordionDetails } from "@mui/material";
|
||||
import ArrowDownwardIcon from '@mui/icons-material/ArrowDownward';
|
||||
import { SynapseDataProvider } from "../synapse/dataProvider";
|
||||
|
||||
const UserAccountData = () => {
|
||||
const dataProvider = useDataProvider() as SynapseDataProvider;
|
||||
const record = useRecordContext();
|
||||
const translate = useTranslate();
|
||||
const [globalAccountData, setGlobalAccountData] = useState({});
|
||||
const [roomsAccountData, setRoomsAccountData] = useState({});
|
||||
|
||||
if (!record) {
|
||||
return null;
|
||||
}
|
||||
|
||||
useEffect(() => {
|
||||
const fetchAccountData = async () => {
|
||||
const accountData = await dataProvider.getAccountData(record.id);
|
||||
setGlobalAccountData(accountData.account_data.global);
|
||||
setRoomsAccountData(accountData.account_data.rooms);
|
||||
};
|
||||
fetchAccountData();
|
||||
}, []);
|
||||
|
||||
if (Object.keys(globalAccountData).length === 0 && Object.keys(roomsAccountData).length === 0) {
|
||||
return <Typography variant="body2">{translate('ra.navigation.no_results', {
|
||||
resource: 'Account Data',
|
||||
_: 'No results found.',
|
||||
})}</Typography>;
|
||||
}
|
||||
|
||||
return <>
|
||||
<Stack
|
||||
direction="column"
|
||||
spacing={2}
|
||||
width="100%"
|
||||
>
|
||||
<Typography variant="h6">{translate('resources.users.account_data.title')}</Typography>
|
||||
<Typography variant="body1">
|
||||
<Box>
|
||||
<Accordion>
|
||||
<AccordionSummary expandIcon={<ArrowDownwardIcon />}>
|
||||
<Typography variant="h6">{translate('resources.users.account_data.global')}</Typography>
|
||||
</AccordionSummary>
|
||||
<AccordionDetails>
|
||||
<Box sx={{ whiteSpace: "pre-wrap" }}>{JSON.stringify(globalAccountData, null, 4)}</Box>
|
||||
</AccordionDetails>
|
||||
</Accordion>
|
||||
<Accordion>
|
||||
<AccordionSummary expandIcon={<ArrowDownwardIcon />}>
|
||||
<Typography variant="h6">{translate('resources.users.account_data.rooms')}</Typography>
|
||||
</AccordionSummary>
|
||||
<AccordionDetails>
|
||||
<Box sx={{ whiteSpace: "pre-wrap" }}>{JSON.stringify(roomsAccountData, null, 4)}</Box>
|
||||
</AccordionDetails>
|
||||
</Accordion>
|
||||
</Box>
|
||||
</Typography>
|
||||
</Stack>
|
||||
</>
|
||||
}
|
||||
|
||||
export default UserAccountData;
|
||||
Reference in New Issue
Block a user