Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
gitpod-io
GitHub Repository: gitpod-io/gitpod
Path: blob/main/components/dashboard/src/user-settings/PageWithSettingsSubMenu.tsx
2500 views
1
/**
2
* Copyright (c) 2022 Gitpod GmbH. All rights reserved.
3
* Licensed under the GNU Affero General Public License (AGPL).
4
* See License.AGPL.txt in the project root for license information.
5
*/
6
7
import { PageWithSubMenu } from "../components/PageWithSubMenu";
8
import { useInstallationConfiguration } from "../data/installation/installation-config-query";
9
import {
10
settingsPathAccount,
11
settingsPathIntegrations,
12
settingsPathMain,
13
settingsPathNotifications,
14
settingsPathPersonalAccessTokenCreate,
15
settingsPathPersonalAccessTokenEdit,
16
settingsPathPersonalAccessTokens,
17
settingsPathPreferences,
18
settingsPathSSHKeys,
19
settingsPathVariables,
20
} from "./settings.routes";
21
22
export interface PageWithAdminSubMenuProps {
23
children: React.ReactNode;
24
}
25
26
export function PageWithSettingsSubMenu({ children }: PageWithAdminSubMenuProps) {
27
const settingsMenu = useUserSettingsMenu();
28
return (
29
<PageWithSubMenu subMenu={settingsMenu} title="User Settings" subtitle="Manage your personal account settings.">
30
{children}
31
</PageWithSubMenu>
32
);
33
}
34
35
function useUserSettingsMenu() {
36
const { data: installationConfig } = useInstallationConfiguration();
37
const isGitpodIo = installationConfig?.isDedicatedInstallation === false;
38
39
return [
40
{
41
title: "Account",
42
link: [settingsPathAccount, settingsPathMain],
43
},
44
...(isGitpodIo
45
? [
46
{
47
title: "Notifications",
48
link: [settingsPathNotifications],
49
},
50
]
51
: []),
52
{
53
title: "Variables",
54
link: [settingsPathVariables],
55
},
56
{
57
title: "SSH Keys",
58
link: [settingsPathSSHKeys],
59
},
60
{
61
title: "Git Providers",
62
link: [settingsPathIntegrations, "/access-control"],
63
},
64
{
65
title: "Access Tokens",
66
link: [
67
settingsPathPersonalAccessTokens,
68
settingsPathPersonalAccessTokenCreate,
69
settingsPathPersonalAccessTokenEdit,
70
],
71
},
72
{
73
title: "Preferences",
74
link: [settingsPathPreferences],
75
},
76
];
77
}
78
79