| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
 | | import React, { useState, useRef, useEffect, useMemo } from "react"; |  | import { useNavigate } from 'react-router-dom'; |  | import { |  |     Edit, |  |     SimpleForm, |  |     FormDataConsumer, |  |     useTranslate, |  |     TextInput, |  |     NumberInput, |  |     BooleanInput, |  |     SaveButton, |  |     SelectInput, |  |     Toolbar, |  |     Labeled, |  |     NumberField, |  |     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'; |  |   |  | 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 ( |  |         <> |  |             <Card sx={{ backgroundColor: 'initial' }}> |  |                 <CardContent > |  |                     <Box |  |                         mt={2} |  |                         sx={{ |  |                             flexGrow: 1, |  |                             bgcolor: 'background.paper', |  |                             display: 'flex', |  |                             height: 224, |  |                             border: `1px solid #${theme[0] === 'light' ? 'ddd' : '333'}`, |  |                             borderRadius: 2 |  |                         }} |  |                     > |  |                         <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> |  |                         <BaseSettings |  |                             value={value} |  |                         /> |  |                         <SecuritySettings |  |                             value={value} |  |                         /> |  |                     </Box> |  |                 </CardContent> |  |             </Card> |  |         </> |  |     ) |  | } |  |   |  | 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; | 
 |