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