Refactored settings components.

This commit is contained in:
Mike Cao 2023-01-09 23:59:26 -08:00
parent d827b79c72
commit 7450b76e6d
91 changed files with 736 additions and 353 deletions

10
pages/settings/index.js Normal file
View file

@ -0,0 +1,10 @@
export default () => null;
export async function getServerSideProps() {
return {
redirect: {
destination: '/settings/websites',
permanent: true,
},
};
}

View file

@ -0,0 +1,10 @@
import SettingsLayout from 'components/pages/settings/SettingsLayout';
import ProfileSettings from 'components/pages/settings/profile/ProfileSettings';
export default function ProfilePage() {
return (
<SettingsLayout>
<ProfileSettings />
</SettingsLayout>
);
}

View file

@ -0,0 +1,20 @@
import SettingsLayout from 'components/pages/settings/SettingsLayout';
import TeamDetails from 'components/pages/settings/teams/TeamDetails';
import useUser from 'hooks/useUser';
import { useRouter } from 'next/router';
export default function TeamDetailPage() {
const user = useUser();
const router = useRouter();
const { id } = router.query;
if (!user) {
return null;
}
return (
<SettingsLayout>
<TeamDetails teamId={id} />
</SettingsLayout>
);
}

View file

@ -0,0 +1,17 @@
import SettingsLayout from 'components/pages/settings/SettingsLayout';
import TeamsList from 'components/pages/settings/teams/TeamsList';
import useUser from 'hooks/useUser';
export default function TeamsPage() {
const user = useUser();
if (!user) {
return null;
}
return (
<SettingsLayout>
<TeamsList />
</SettingsLayout>
);
}

View file

@ -0,0 +1,20 @@
import SettingsLayout from 'components/pages/settings/SettingsLayout';
import UserSettings from 'components/pages/settings/users/UserSettings';
import useUser from 'hooks/useUser';
import { useRouter } from 'next/router';
export default function TeamDetailPage() {
const user = useUser();
const router = useRouter();
const { id } = router.query;
if (!user) {
return null;
}
return (
<SettingsLayout>
<UserSettings userId={id} />
</SettingsLayout>
);
}

View file

@ -0,0 +1,20 @@
import SettingsLayout from 'components/pages/settings/SettingsLayout';
import useConfig from 'hooks/useConfig';
import useUser from 'hooks/useUser';
import UsersList from 'components/pages/settings/users/UsersList';
export default function UsersPage() {
const user = useUser();
const { adminDisabled } = useConfig();
if (adminDisabled || !user) {
return null;
}
return (
<SettingsLayout>
<UsersList />
</SettingsLayout>
);
}

View file

@ -0,0 +1,20 @@
import { useRouter } from 'next/router';
import WebsiteDetails from 'components/pages/settings/websites/WebsiteDetails';
import useUser from 'hooks/useUser';
import SettingsLayout from 'components/pages/settings/SettingsLayout';
export default function WebsiteSettingsPage() {
const user = useUser();
const router = useRouter();
const { id } = router.query;
if (!id || !user) {
return null;
}
return (
<SettingsLayout>
<WebsiteDetails websiteId={id} />
</SettingsLayout>
);
}

View file

@ -0,0 +1,19 @@
import SettingsLayout from 'components/pages/settings/SettingsLayout';
import useConfig from 'hooks/useConfig';
import useRequireLogin from 'hooks/useRequireLogin';
import WebsitesList from 'components/pages/settings/websites/WebsitesList';
export default function WebsitesPage() {
const { user } = useRequireLogin();
const { adminDisabled } = useConfig();
if (adminDisabled || !user) {
return null;
}
return (
<SettingsLayout>
<WebsitesList />
</SettingsLayout>
);
}