From 016892ac0bf9d46844ca82a04f2d4af2782e129c Mon Sep 17 00:00:00 2001
From: ARADDCC012 <110473008+ARADDCC012@users.noreply.github.com>
Date: Thu, 4 Jan 2024 14:33:39 +0000
Subject: [PATCH 1/6] Added V2 settings page
---
.../e2e/beta/push-image-registry.cy.ts | 2 +-
frontend/pages/beta/settings/index.tsx | 28 +++++++++++++++++++
frontend/src/common/PageWithTabs.tsx | 10 +++++--
.../beta/registry/UploadNewImageDialog.tsx | 4 +--
frontend/src/settings/beta/ProfileTab.tsx | 16 +++++++++++
frontend/src/wrapper/TopNavigation.tsx | 10 ++++++-
6 files changed, 64 insertions(+), 6 deletions(-)
create mode 100644 frontend/pages/beta/settings/index.tsx
create mode 100644 frontend/src/settings/beta/ProfileTab.tsx
diff --git a/frontend/cypress/e2e/beta/push-image-registry.cy.ts b/frontend/cypress/e2e/beta/push-image-registry.cy.ts
index 1d05832ac..7520ab6ed 100644
--- a/frontend/cypress/e2e/beta/push-image-registry.cy.ts
+++ b/frontend/cypress/e2e/beta/push-image-registry.cy.ts
@@ -39,7 +39,7 @@ describe('Make and approve an access request', () => {
cy.contains('Pushing an Image for this Model')
cy.log('Fetching the docker login password and running all the docker commands to push an image')
- cy.get('[data-test=showTokenButton]').click()
+ cy.get('[data-test=regenerateTokenButton]').click()
cy.get('[data-test=dockerPassword]').should('not.contain.text', 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx')
cy.get('[data-test=dockerPassword]')
.invoke('text')
diff --git a/frontend/pages/beta/settings/index.tsx b/frontend/pages/beta/settings/index.tsx
new file mode 100644
index 000000000..3263a9be6
--- /dev/null
+++ b/frontend/pages/beta/settings/index.tsx
@@ -0,0 +1,28 @@
+import { useGetCurrentUser } from 'actions/user'
+import { useMemo } from 'react'
+import Loading from 'src/common/Loading'
+import PageWithTabs from 'src/common/PageWithTabs'
+import MultipleErrorWrapper from 'src/errors/MultipleErrorWrapper'
+import ProfileTab from 'src/settings/beta/ProfileTab'
+import Wrapper from 'src/Wrapper.beta'
+
+export default function Settings() {
+ const { currentUser, isCurrentUserLoading, isCurrentUserError } = useGetCurrentUser()
+
+ const tabs = useMemo(
+ () => (currentUser ? [{ title: 'Profile', path: 'profile', view: }] : []),
+ [currentUser],
+ )
+
+ const error = MultipleErrorWrapper(`Unable to load settings page`, {
+ isCurrentUserError,
+ })
+ if (error) return error
+
+ return (
+
+ {isCurrentUserLoading && }
+
+
+ )
+}
diff --git a/frontend/src/common/PageWithTabs.tsx b/frontend/src/common/PageWithTabs.tsx
index 23a855138..b9b2e4d99 100644
--- a/frontend/src/common/PageWithTabs.tsx
+++ b/frontend/src/common/PageWithTabs.tsx
@@ -3,7 +3,7 @@ import { grey } from '@mui/material/colors/'
import { useTheme } from '@mui/material/styles'
import { useRouter } from 'next/router'
import { ParsedUrlQuery } from 'querystring'
-import { ReactElement, SyntheticEvent, useContext, useState } from 'react'
+import { ReactElement, SyntheticEvent, useContext, useEffect, useState } from 'react'
import UnsavedChangesContext from 'src/contexts/unsavedChangesContext'
export interface PageTab {
@@ -31,7 +31,13 @@ export default function PageWithTabs({
}) {
const router = useRouter()
const { tab } = router.query
- const [currentTab, setCurrentTab] = useState(tabs.find((pageTab) => pageTab.path === tab) ? `${tab}` : tabs[0].path)
+
+ const [currentTab, setCurrentTab] = useState('')
+
+ useEffect(() => {
+ if (!tabs.length) return
+ setCurrentTab(tabs.find((pageTab) => pageTab.path === tab) ? `${tab}` : tabs[0].path)
+ }, [tab, tabs])
const { unsavedChanges, setUnsavedChanges, sendWarning } = useContext(UnsavedChangesContext)
diff --git a/frontend/src/model/beta/registry/UploadNewImageDialog.tsx b/frontend/src/model/beta/registry/UploadNewImageDialog.tsx
index c84e510a6..b1ffe2e88 100644
--- a/frontend/src/model/beta/registry/UploadNewImageDialog.tsx
+++ b/frontend/src/model/beta/registry/UploadNewImageDialog.tsx
@@ -55,7 +55,7 @@ export default function UploadModelImageDialog({ open, handleClose, model }: Upl
const body = await res.json()
token = body.token
} catch (error) {
- setTokenErrorText('Recieved invalid response from server.')
+ setTokenErrorText('Received invalid response from server.')
}
return token
@@ -94,7 +94,7 @@ export default function UploadModelImageDialog({ open, handleClose, model }: Upl
User authentication token
Use the token below to authenticate when you try and run the docker login command
-