umami/components/pages/Settings.js

47 lines
1.4 KiB
JavaScript
Raw Normal View History

2020-08-09 10:04:48 +00:00
import React, { useState } from 'react';
import { useRouter } from 'next/router';
2020-08-09 06:48:43 +00:00
import Page from 'components/layout/Page';
import MenuLayout from 'components/layout/MenuLayout';
2020-09-27 07:51:29 +00:00
import WebsiteSettings from '../settings/WebsiteSettings';
import AccountSettings from '../settings/AccountSettings';
import ProfileSettings from '../settings/ProfileSettings';
2020-08-09 09:03:37 +00:00
import { useSelector } from 'react-redux';
2020-09-06 00:27:01 +00:00
import { FormattedMessage } from 'react-intl';
const WEBSITES = '/settings';
const ACCOUNTS = '/settings/accounts';
const PROFILE = '/settings/profile';
2020-08-09 06:48:43 +00:00
export default function Settings() {
2020-08-09 09:03:37 +00:00
const user = useSelector(state => state.user);
2020-09-06 00:27:01 +00:00
const [option, setOption] = useState(WEBSITES);
const router = useRouter();
const { pathname } = router;
2020-08-09 09:03:37 +00:00
2020-08-09 22:13:38 +00:00
const menuOptions = [
2020-09-06 00:27:01 +00:00
{
2020-09-17 05:29:40 +00:00
label: <FormattedMessage id="label.websites" defaultMessage="Websites" />,
2020-09-06 00:27:01 +00:00
value: WEBSITES,
},
{
2020-09-17 05:29:40 +00:00
label: <FormattedMessage id="label.accounts" defaultMessage="Accounts" />,
2020-09-06 00:27:01 +00:00
value: ACCOUNTS,
2020-09-30 04:22:08 +00:00
hidden: !user?.is_admin,
2020-09-06 00:27:01 +00:00
},
{
2020-09-17 05:29:40 +00:00
label: <FormattedMessage id="label.profile" defaultMessage="Profile" />,
value: PROFILE,
},
2020-08-09 22:13:38 +00:00
];
2020-08-09 09:03:37 +00:00
2020-08-05 05:45:05 +00:00
return (
2020-08-06 02:04:02 +00:00
<Page>
2020-08-09 10:04:48 +00:00
<MenuLayout menu={menuOptions} selectedOption={option} onMenuSelect={setOption}>
{pathname === WEBSITES && <WebsiteSettings />}
{pathname === ACCOUNTS && <AccountSettings />}
{pathname === PROFILE && <ProfileSettings />}
2020-08-09 06:48:43 +00:00
</MenuLayout>
2020-08-06 02:04:02 +00:00
</Page>
2020-08-05 05:45:05 +00:00
);
}