diff --git a/frontend/src/pages/User/Details/PublicKeys/index.tsx b/frontend/src/pages/User/Details/PublicKeys/index.tsx index b6ce794d3f..173444358d 100644 --- a/frontend/src/pages/User/Details/PublicKeys/index.tsx +++ b/frontend/src/pages/User/Details/PublicKeys/index.tsx @@ -1,22 +1,18 @@ import React, { useState } from 'react'; import { useTranslation } from 'react-i18next'; -import { useParams } from 'react-router-dom'; import CloudscapeInput from '@cloudscape-design/components/input'; import CloudscapeTextarea from '@cloudscape-design/components/textarea'; import { Box, Button, ButtonWithConfirmation, FormField, Header, InfoLink, Modal, SpaceBetween, Table } from 'components'; -import { useBreadcrumbs, useCollection, useHelpPanel, useNotifications } from 'hooks'; +import { useCollection, useHelpPanel, useNotifications } from 'hooks'; import { getServerError } from 'libs'; -import { ROUTES } from 'routes'; import { IPublicKey, useAddPublicKeyMutation, useDeletePublicKeysMutation, useListPublicKeysQuery } from 'services/publicKeys'; import { SSH_KEYS_INFO } from './constants'; export const PublicKeys: React.FC = () => { const { t } = useTranslation(); - const params = useParams(); - const paramUserName = params.userName ?? ''; const [pushNotification] = useNotifications(); const [openHelpPanel] = useHelpPanel(); @@ -29,21 +25,6 @@ export const PublicKeys: React.FC = () => { const [addPublicKey, { isLoading: isAdding }] = useAddPublicKeyMutation(); const [deletePublicKeys, { isLoading: isDeleting }] = useDeletePublicKeysMutation(); - useBreadcrumbs([ - { - text: t('navigation.account'), - href: ROUTES.USER.LIST, - }, - { - text: paramUserName, - href: ROUTES.USER.DETAILS.FORMAT(paramUserName), - }, - { - text: t('users.public_keys.title'), - href: ROUTES.USER.PUBLIC_KEYS.FORMAT(paramUserName), - }, - ]); - const { items, collectionProps } = useCollection(publicKeys, { selection: {}, }); diff --git a/frontend/src/pages/User/Details/Settings/index.tsx b/frontend/src/pages/User/Details/Settings/index.tsx index fdefae4dc2..2f1c1c6638 100644 --- a/frontend/src/pages/User/Details/Settings/index.tsx +++ b/frontend/src/pages/User/Details/Settings/index.tsx @@ -13,6 +13,8 @@ import { GlobalUserRole } from 'types'; import { selectUserData } from 'App/slice'; +import { PublicKeys } from '../PublicKeys'; + import styles from './styles.module.scss'; export const Settings: React.FC = () => { @@ -51,62 +53,66 @@ export const Settings: React.FC = () => { }; return ( - - {t('common.edit')} - - } - > - {t('users.account_settings')} - - } - > - {isLoading && } - - {data && ( - - - {/*
*/} - {/* {t('users.user_name')}*/} - {/*
{data.user_name}
*/} - {/*
*/} - -
- {t('users.email')} -
{data.email ? {data.email} : '-'}
-
- - + + + {t('common.edit')} + + } + > + {t('users.account_settings')} + + } + > + {isLoading && } + + {data && ( + + + {/*
*/} + {/* {t('users.user_name')}*/} + {/*
{data.user_name}
*/} + {/*
*/} +
- {t('users.global_role')} -
{t(`roles.${data.global_role}`)}
+ {t('users.email')} +
{data.email ? {data.email} : '-'}
-
- -
- {t('users.token')} - -
- {t('users.token_copied')}} - > -
- -
-
- )} -
+ + + )} + + + + ); }; diff --git a/frontend/src/pages/User/Details/index.tsx b/frontend/src/pages/User/Details/index.tsx index ee878a442d..3236d9acad 100644 --- a/frontend/src/pages/User/Details/index.tsx +++ b/frontend/src/pages/User/Details/index.tsx @@ -19,7 +19,6 @@ export { Settings as UserSettings } from './Settings'; export { Billing as UserBilling } from './Billing'; export { Events as UserEvents } from './Events'; export { UserProjectList as UserProjects } from './Projects'; -export { PublicKeys as UserPublicKeys } from './PublicKeys'; export const UserDetails: React.FC = () => { const { t } = useTranslation(); @@ -68,11 +67,6 @@ export const UserDetails: React.FC = () => { id: UserDetailsTabTypeEnum.SETTINGS, href: ROUTES.USER.DETAILS.FORMAT(paramUserName), }, - { - label: t('users.public_keys.title'), - id: UserDetailsTabTypeEnum.PUBLIC_KEYS, - href: ROUTES.USER.PUBLIC_KEYS.FORMAT(paramUserName), - }, { label: t('users.projects'), id: UserDetailsTabTypeEnum.PROJECTS, diff --git a/frontend/src/pages/User/Details/types.ts b/frontend/src/pages/User/Details/types.ts index ea0f69431c..9f2a0680ac 100644 --- a/frontend/src/pages/User/Details/types.ts +++ b/frontend/src/pages/User/Details/types.ts @@ -3,6 +3,5 @@ export enum UserDetailsTabTypeEnum { PROJECTS = 'projects', EVENTS = 'events', ACTIVITY = 'activity', - PUBLIC_KEYS = 'public-keys', BILLING = 'billing', } diff --git a/frontend/src/router.tsx b/frontend/src/router.tsx index cb36ab9bf4..7e38a3e756 100644 --- a/frontend/src/router.tsx +++ b/frontend/src/router.tsx @@ -28,7 +28,7 @@ import { RunInspect } from 'pages/Runs/Details/Inspect'; import { JobDetailsPage } from 'pages/Runs/Details/Jobs/Details'; import { EventsList as JobEvents } from 'pages/Runs/Details/Jobs/Events'; import { CreditsHistoryAdd, UserAdd, UserDetails, UserEdit, UserList } from 'pages/User'; -import { UserBilling, UserEvents, UserProjects, UserPublicKeys, UserSettings } from 'pages/User/Details'; +import { UserBilling, UserEvents, UserProjects, UserSettings } from 'pages/User/Details'; import { AuthErrorMessage } from './App/AuthErrorMessage'; import { EventList } from './pages/Events'; @@ -280,8 +280,9 @@ export const router = createBrowserRouter([ element: , }, { + // SSH keys moved to a section inside the Settings tab path: ROUTES.USER.PUBLIC_KEYS.TEMPLATE, - element: , + element: , }, process.env.UI_VERSION === 'sky' && { path: ROUTES.USER.BILLING.LIST.TEMPLATE,