#
luxiaotao1123
2024-11-04 7f70cb15d035f0c233b9e62b9e43aa985317c908
zy-acs-flow/src/page/settings/Settings.jsx
@@ -1,4 +1,5 @@
import React, { useState, useRef, useEffect, useMemo } from "react";
import { useNavigate } from 'react-router-dom';
import {
    Edit,
    SimpleForm,
@@ -15,43 +16,28 @@
    required,
    useRecordContext,
    useTheme,
    useAuthProvider,
} from 'react-admin';
import { useWatch, useFormContext } from "react-hook-form";
import { Stack, Grid, Box, Typography, Card, CardContent, Tabs, Tab } from '@mui/material';
import * as Common from '@/utils/common';
import { } from '@/config/setting';
function TabPanel(props) {
    const { children, value, index, ...other } = props;
    return (
        <div
            role="tabpanel"
            hidden={value !== index}
            id={`vertical-tabpanel-${index}`}
            aria-labelledby={`vertical-tab-${index}`}
            {...other}
        >
            {value === index && (
                <Box sx={{ p: 3 }}>
                    <Typography>{children}</Typography>
                </Box>
            )}
        </div>
    );
}
function a11yProps(index) {
    return {
        id: `vertical-tab-${index}`,
        'aria-controls': `vertical-tabpanel-${index}`,
    };
}
const Settings = () => {
    const authProvider = useAuthProvider();
    const navigate = useNavigate();
    const translate = useTranslate();
    const theme = useTheme();
    const [value, setValue] = React.useState(0);
    useEffect(() => {
        authProvider.checkAuth().catch(() => {
            navigate('/login');
        });
    }, [authProvider, navigate]);
    useEffect(() => {
    }, [value]);
    return (
        <>
@@ -80,18 +66,25 @@
                            sx={{
                                borderRight: 1,
                                borderColor: 'divider',
                                width: 150
                                width: 150,
                            }}
                        >
                            <Tab label={translate('settings.base')} {...a11yProps(0)} />
                            <Tab label={translate('settings.security')} {...a11yProps(1)} />
                            <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>
                        <TabPanel value={value} index={0}>
                            {translate('settings.base')}
                        </TabPanel>
                        <TabPanel value={value} index={1}>
                            {translate('settings.security')}
                        </TabPanel>
                        <BaseSettings
                            value={value}
                        />
                        <SecuritySettings
                            value={value}
                        />
                    </Box>
                </CardContent>
            </Card>
@@ -99,4 +92,48 @@
    )
}
const BaseSettings = (props) => {
    const { children, value, ...other } = props;
    return (
        <Box
            hidden={value !== 0}
            sx={{ p: 3 }}
            {...other}
        >
            <Grid container spacing={6}>
                <Grid item xs={12}>
                    {/* https://github.com/themeselection/materio-mui-nextjs-admin-template-free/blob/main/javascript-version/src/views/account-settings/account/AccountDetails.jsx */}
                    <Card>
                        <CardContent className='mbe-5'>
                            <Typography>
                                Base Settings
                            </Typography>
                        </CardContent>
                    </Card>
                </Grid>
            </Grid>
        </Box>
    )
}
const SecuritySettings = (props) => {
    const { children, value, ...other } = props;
    return (
        <Box
            hidden={value !== 1}
            sx={{ p: 3 }}
            {...other}
        >
            <Typography>
                Security Settings
            </Typography>
        </Box>
    )
}
export default Settings;