From 5f52bd03c5753a581ae149183e19b6918d0eb15c Mon Sep 17 00:00:00 2001 From: Jaalah Ramos Date: Mon, 8 Apr 2024 08:49:43 -0400 Subject: [PATCH 01/11] feat: [M3-7921] - Refresh Proxy User Session --- packages/manager/src/MainContent.tsx | 198 +++++++++-------- .../src/context/sessionExpirationContext.ts | 7 + .../src/features/Account/AccountLanding.tsx | 14 +- .../features/Account/SwitchAccountDrawer.tsx | 179 ++++++++------- .../SwitchAccounts/ChildAccountList.tsx | 6 +- .../SessionExpirationDialog.test.tsx | 93 ++++++++ .../SessionExpirationDialog.tsx | 209 ++++++++++++++++++ ...t.tsx => useIsParentTokenExpired.test.tsx} | 10 +- ...gement.tsx => useIsParentTokenExpired.tsx} | 4 +- .../useParentChildAuthentication.tsx | 73 ++++++ .../features/Account/SwitchAccounts/utils.ts | 104 ++++++--- .../manager/src/features/Account/utils.ts | 90 +------- .../GlobalNotifications.tsx | 20 +- .../features/TopMenu/UserMenu/UserMenu.tsx | 19 +- .../src/hooks/usePendingRevocationToken.ts | 2 +- .../manager/src/queries/account/account.ts | 10 +- 16 files changed, 692 insertions(+), 346 deletions(-) create mode 100644 packages/manager/src/context/sessionExpirationContext.ts create mode 100644 packages/manager/src/features/Account/SwitchAccounts/SessionExpirationDialog.test.tsx create mode 100644 packages/manager/src/features/Account/SwitchAccounts/SessionExpirationDialog.tsx rename packages/manager/src/features/Account/SwitchAccounts/{useParentTokenManagement.test.tsx => useIsParentTokenExpired.test.tsx} (82%) rename packages/manager/src/features/Account/SwitchAccounts/{useParentTokenManagement.tsx => useIsParentTokenExpired.tsx} (77%) create mode 100644 packages/manager/src/features/Account/SwitchAccounts/useParentChildAuthentication.tsx diff --git a/packages/manager/src/MainContent.tsx b/packages/manager/src/MainContent.tsx index 46bd8cf1a07..0e4fe5db4d2 100644 --- a/packages/manager/src/MainContent.tsx +++ b/packages/manager/src/MainContent.tsx @@ -1,5 +1,5 @@ -import Grid from '@mui/material/Unstable_Grid2'; import { Theme } from '@mui/material/styles'; +import Grid from '@mui/material/Unstable_Grid2'; import { isEmpty } from 'ramda'; import * as React from 'react'; import { Redirect, Route, Switch } from 'react-router-dom'; @@ -30,6 +30,7 @@ import { isFeatureEnabled } from 'src/utilities/accountCapabilities'; import { ENABLE_MAINTENANCE_MODE } from './constants'; import { complianceUpdateContext } from './context/complianceUpdateContext'; +import { sessionExpirationContext } from './context/sessionExpirationContext'; import { switchAccountSessionContext } from './context/switchAccountSessionContext'; import { FlagSet } from './featureFlags'; import { useIsACLBEnabled } from './features/LoadBalancers/utils'; @@ -199,6 +200,11 @@ export const MainContent = () => { isOpen: false, }); + const SessionExpirationProvider = sessionExpirationContext.Provider; + const sessionExpirationContextValue = useDialogContext({ + isOpen: false, + }); + const [menuIsOpen, toggleMenu] = React.useState(false); const { _isManagedAccount, @@ -295,105 +301,107 @@ export const MainContent = () => { */ return (
- - - - <> - {shouldDisplayMainContentBanner ? ( - setBannerDismissed(true)} - url={flags.mainContentBanner?.link?.url ?? ''} - /> - ) : null} - toggleMenu(false)} - collapse={desktopMenuIsOpen || false} - open={menuIsOpen} - /> -
- toggleMenu(true)} - username={username} + + + + + <> + {shouldDisplayMainContentBanner ? ( + setBannerDismissed(true)} + url={flags.mainContentBanner?.link?.url ?? ''} + /> + ) : null} + toggleMenu(false)} + collapse={desktopMenuIsOpen || false} + open={menuIsOpen} /> -
- - - - }> - - - - - - {isACLBEnabled && ( + toggleMenu(true)} + username={username} + /> +
+ + + + }> + + + + + + {isACLBEnabled && ( + + )} + + + + + + - )} - - - - - - - - - - - - - - - {showDatabases && ( - - )} - {flags.selfServeBetas && ( - - )} - - - {/** We don't want to break any bookmarks. This can probably be removed eventually. */} - - - - + + + + + + + + {showDatabases && ( + + )} + {flags.selfServeBetas && ( + + )} + + + {/** We don't want to break any bookmarks. This can probably be removed eventually. */} + + + + + - -
-
- -
-
- - + +
+ + +