import React, { useState, useRef, useEffect, useMemo } from "react";
|
import { useNavigate } from 'react-router-dom';
|
import {
|
useTranslate,
|
useAuthProvider,
|
} from 'react-admin';
|
import { useWatch, useFormContext } from "react-hook-form";
|
import { Stack, Grid, Box, Typography, Card, CardContent, Tabs, Tab, useTheme } from '@mui/material';
|
import * as Common from '@/utils/common';
|
import BaseSettings from "./BaseSettings";
|
import SecuritySettings from "./SecuritySettings"
|
import { queryUserInfo } from '@/api/auth';
|
|
const Index = () => {
|
const authProvider = useAuthProvider();
|
const navigate = useNavigate();
|
const translate = useTranslate();
|
const theme = useTheme();
|
|
const [value, setValue] = useState(0);
|
const [userInfo, setUserInfo] = useState(null);
|
|
useEffect(() => {
|
authProvider.checkAuth().catch(() => {
|
navigate('/login');
|
});
|
}, [authProvider, navigate]);
|
|
useEffect(() => {
|
queryUserInfo().then(res => {
|
setUserInfo(res);
|
})
|
}, []);
|
|
return (
|
<>
|
<Card sx={{ backgroundColor: 'initial' }}>
|
<CardContent >
|
<Box
|
mt={2}
|
sx={{
|
flexGrow: 1,
|
bgcolor: 'background.paper',
|
display: 'flex',
|
border: `1px solid #${theme.palette.mode === 'light' ? 'ddd' : '333'}`,
|
borderRadius: 2,
|
pt: 1,
|
pb: 1,
|
}}
|
>
|
<Tabs
|
orientation="vertical"
|
variant="scrollable"
|
value={value}
|
onChange={(event, newValue) => {
|
setValue(newValue);
|
}}
|
indicatorColor="secondary"
|
textColor="inherit"
|
sx={{
|
borderRight: 1,
|
borderColor: 'divider',
|
width: 150,
|
}}
|
>
|
<Tab
|
label={translate('settings.base')}
|
id='vertical-tab-0'
|
aria-controls='vertical-tabpanel-0'
|
/>
|
<Tab label={translate('settings.security')}
|
id='vertical-tab-1'
|
aria-controls='vertical-tabpanel-1'
|
/>
|
</Tabs>
|
|
{value === 0 && (
|
<BaseSettings
|
value={value}
|
userInfo={userInfo}
|
/>
|
)}
|
{value === 1 && (
|
<SecuritySettings
|
value={value}
|
userInfo={userInfo}
|
/>
|
)}
|
|
</Box>
|
</CardContent>
|
</Card>
|
</>
|
)
|
}
|
|
export default Index;
|