-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathSettings.tsx
67 lines (61 loc) · 1.71 KB
/
Settings.tsx
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
import { UpdatePassword } from '@/api/users'
import { Container, Typography, Divider, Box, Button } from '@mui/joy'
import React from 'react'
import { PassowrdChangeModal } from '../Modals/Inputs/PasswordChangeModal'
import { APITokenSettings } from './APITokenSettings'
import { NotificationSetting } from '../Notifications/NotificationSettings'
import { ThemeToggle } from './ThemeToggle'
export class Settings extends React.Component {
private changePasswordModal = React.createRef<PassowrdChangeModal>()
private onPasswordChanged = async (password: string | null) => {
if (!password) {
return
}
await UpdatePassword(password)
}
private onChangePassword = () => {
this.changePasswordModal.current?.open()
}
render(): React.ReactNode {
return (
<Container sx={{
paddingBottom: '16px',
}}>
<div
style={{
display: 'grid',
gap: '4',
paddingTop: '4',
paddingBottom: '4',
}}
>
<Typography level='h3'>Password</Typography>
<Divider />
<Box sx={{
mt: 1,
}}>
<Button
variant='soft'
onClick={this.onChangePassword}
>
Change Password
</Button>
<PassowrdChangeModal
ref={this.changePasswordModal}
onClose={this.onPasswordChanged}
/>
</Box>
</div>
<NotificationSetting />
<APITokenSettings />
<Box sx={{
mt: 2,
}}>
<Typography level='h3'>Theme preferences</Typography>
<Divider />
<ThemeToggle />
</Box>
</Container>
)
}
}