50 lines
1.6 KiB
TypeScript
50 lines
1.6 KiB
TypeScript
'use client';
|
|
|
|
import * as React from 'react';
|
|
import type { Metadata } from 'next';
|
|
import Stack from '@mui/material/Stack';
|
|
import Typography from '@mui/material/Typography';
|
|
import { useTranslation } from 'react-i18next';
|
|
|
|
import { config } from '@/config';
|
|
import { dayjs } from '@/lib/dayjs';
|
|
import { LoginHistory } from '@/components/dashboard/settings/login-history';
|
|
import { MultiFactor } from '@/components/dashboard/settings/multi-factor';
|
|
import { PasswordForm } from '@/components/dashboard/settings/password-form';
|
|
|
|
// export const metadata = { title: `Security | Settings | Dashboard | ${config.site.name}` } satisfies Metadata;
|
|
|
|
export default function Page(): React.JSX.Element {
|
|
const { t } = useTranslation();
|
|
|
|
return (
|
|
<Stack spacing={4}>
|
|
<div>
|
|
<Typography variant="h4">{t('security')}</Typography>
|
|
</div>
|
|
<Stack spacing={4}>
|
|
<PasswordForm />
|
|
<MultiFactor />
|
|
<LoginHistory
|
|
events={[
|
|
{
|
|
id: 'EV-002',
|
|
type: 'Credential login',
|
|
ip: '95.130.17.84',
|
|
userAgent: 'Chrome, Mac OS 10.15.7',
|
|
createdAt: dayjs().subtract(1, 'day').subtract(1, 'hour').subtract(5, 'minute').toDate(),
|
|
},
|
|
{
|
|
id: 'EV-001',
|
|
type: 'Credential login',
|
|
ip: '95.130.17.84',
|
|
userAgent: 'Chrome, Mac OS 10.15.7',
|
|
createdAt: dayjs().subtract(1, 'day').subtract(1, 'hour').subtract(25, 'minute').toDate(),
|
|
},
|
|
]}
|
|
/>
|
|
</Stack>
|
|
</Stack>
|
|
);
|
|
}
|