@databiosphere/findable-ui 19.0.0 → 20.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.release-please-manifest.json +1 -1
- package/CHANGELOG.md +11 -0
- package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.d.ts +2 -0
- package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.js +29 -0
- package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/types.d.ts +6 -0
- package/lib/components/Authentication/components/SessionController/components/GoogleSessionController/types.js +1 -0
- package/lib/components/Authentication/components/SessionController/components/NextSessionController/SessionController.d.ts +2 -0
- package/lib/components/Authentication/components/SessionController/components/NextSessionController/SessionController.js +17 -0
- package/lib/components/Authentication/components/SessionController/components/NextSessionController/constants.d.ts +5 -0
- package/lib/components/Authentication/components/SessionController/components/NextSessionController/constants.js +12 -0
- package/lib/components/Authentication/components/SessionController/components/NextSessionController/types.d.ts +4 -0
- package/lib/components/Authentication/components/SessionController/components/NextSessionController/types.js +1 -0
- package/lib/components/Authentication/components/SessionController/components/NextSessionController/utils.d.ts +15 -0
- package/lib/components/Authentication/components/SessionController/components/NextSessionController/utils.js +53 -0
- package/lib/components/ComponentCreator/ComponentCreator.js +2 -3
- package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.js +2 -2
- package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.js +1 -1
- package/lib/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.js +8 -3
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.d.ts +2 -1
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.js +17 -14
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.d.ts +3 -4
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.js +15 -24
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.d.ts +1 -1
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.js +2 -2
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.d.ts +2 -0
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.js +14 -0
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.js +3 -2
- package/lib/components/Layout/components/Header/header.js +1 -1
- package/lib/components/Login/components/Button/button.d.ts +2 -0
- package/lib/components/Login/components/Button/button.js +6 -0
- package/lib/components/Login/components/Button/button.styles.d.ts +5 -0
- package/lib/components/Login/components/Button/button.styles.js +11 -0
- package/lib/components/Login/components/Button/constants.d.ts +2 -0
- package/lib/components/Login/components/Button/constants.js +6 -0
- package/lib/components/Login/components/Button/types.d.ts +3 -0
- package/lib/components/Login/components/Button/types.js +1 -0
- package/lib/components/Login/login.d.ts +2 -9
- package/lib/components/Login/login.js +9 -10
- package/lib/components/Login/types.d.ts +10 -0
- package/lib/components/Login/types.js +1 -0
- package/lib/components/common/Banner/components/SessionTimeout/sessionTimeout.js +1 -1
- package/lib/components/common/CustomIcon/common/entities.d.ts +1 -4
- package/lib/components/common/CustomIcon/components/GoogleIcon/googleIcon.d.ts +2 -2
- package/lib/components/common/CustomIcon/components/GoogleIcon/googleIcon.js +1 -1
- package/lib/config/entities.d.ts +22 -23
- package/lib/hooks/authentication/auth/useAuthReducer.d.ts +2 -0
- package/lib/hooks/authentication/auth/useAuthReducer.js +8 -0
- package/lib/hooks/authentication/authentication/useAuthenticationReducer.d.ts +2 -0
- package/lib/hooks/authentication/authentication/useAuthenticationReducer.js +8 -0
- package/lib/hooks/authentication/config/useAuthenticationConfig.d.ts +6 -0
- package/lib/hooks/authentication/config/useAuthenticationConfig.js +9 -0
- package/lib/hooks/authentication/credentials/useCredentialsReducer.d.ts +2 -0
- package/lib/hooks/authentication/credentials/useCredentialsReducer.js +7 -0
- package/lib/hooks/authentication/profile/types.d.ts +5 -0
- package/lib/hooks/authentication/profile/types.js +1 -0
- package/lib/hooks/authentication/profile/useProfile.d.ts +6 -0
- package/lib/hooks/authentication/profile/useProfile.js +15 -0
- package/lib/hooks/authentication/providers/types.d.ts +6 -0
- package/lib/hooks/authentication/providers/types.js +1 -0
- package/lib/hooks/authentication/providers/useProviders.d.ts +6 -0
- package/lib/hooks/authentication/providers/useProviders.js +14 -0
- package/lib/hooks/authentication/session/useSessionActive.d.ts +12 -0
- package/lib/hooks/authentication/session/useSessionActive.js +36 -0
- package/lib/hooks/authentication/session/useSessionCallbackUrl.d.ts +4 -0
- package/lib/hooks/authentication/session/useSessionCallbackUrl.js +20 -0
- package/lib/hooks/authentication/session/useSessionIdleTimer.d.ts +6 -0
- package/lib/hooks/authentication/session/useSessionIdleTimer.js +8 -0
- package/lib/hooks/{useSessionTimeout.js → authentication/session/useSessionTimeout.js} +2 -2
- package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.d.ts +0 -1
- package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.js +6 -9
- package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.js +3 -4
- package/lib/hooks/authentication/token/types.d.ts +4 -0
- package/lib/hooks/authentication/token/types.js +1 -0
- package/lib/hooks/authentication/token/useToken.d.ts +2 -0
- package/lib/hooks/authentication/token/useToken.js +5 -0
- package/lib/hooks/authentication/token/useTokenReducer.d.ts +7 -0
- package/lib/hooks/authentication/token/useTokenReducer.js +12 -0
- package/lib/hooks/useEntityList.js +2 -2
- package/lib/hooks/useFetchEntity.js +4 -3
- package/lib/hooks/useFileManifest/useFetchFilesFacets.js +2 -3
- package/lib/hooks/useFileManifest/useFetchSummary.js +2 -3
- package/lib/hooks/useRequestFileLocation.js +2 -3
- package/lib/hooks/useRouteHistory.d.ts +14 -0
- package/lib/hooks/useRouteHistory.js +40 -0
- package/lib/hooks/useRouteRoot.d.ts +1 -0
- package/lib/hooks/useRouteRoot.js +8 -0
- package/lib/hooks/useSummary.js +3 -3
- package/lib/providers/authentication/auth/actions.d.ts +8 -0
- package/lib/providers/authentication/auth/actions.js +12 -0
- package/lib/providers/authentication/auth/constants.d.ts +2 -0
- package/lib/providers/authentication/auth/constants.js +5 -0
- package/lib/providers/authentication/auth/context.d.ts +2 -0
- package/lib/providers/authentication/auth/context.js +7 -0
- package/lib/providers/authentication/auth/dispatch.d.ts +23 -0
- package/lib/providers/authentication/auth/dispatch.js +43 -0
- package/lib/providers/authentication/auth/hook.d.ts +6 -0
- package/lib/providers/authentication/auth/hook.js +9 -0
- package/lib/providers/authentication/auth/reducer.d.ts +8 -0
- package/lib/providers/authentication/auth/reducer.js +24 -0
- package/lib/providers/authentication/auth/types.d.ts +48 -0
- package/lib/providers/authentication/auth/types.js +11 -0
- package/lib/providers/authentication/authentication/actions.d.ts +8 -0
- package/lib/providers/authentication/authentication/actions.js +12 -0
- package/lib/providers/authentication/authentication/constants.d.ts +2 -0
- package/lib/providers/authentication/authentication/constants.js +5 -0
- package/lib/providers/authentication/authentication/context.d.ts +2 -0
- package/lib/providers/authentication/authentication/context.js +6 -0
- package/lib/providers/authentication/authentication/dispatch.d.ts +22 -0
- package/lib/providers/authentication/authentication/dispatch.js +42 -0
- package/lib/providers/authentication/authentication/hook.d.ts +6 -0
- package/lib/providers/authentication/authentication/hook.js +9 -0
- package/lib/providers/authentication/authentication/reducer.d.ts +9 -0
- package/lib/providers/authentication/authentication/reducer.js +25 -0
- package/lib/providers/authentication/authentication/types.d.ts +47 -0
- package/lib/providers/authentication/authentication/types.js +11 -0
- package/lib/providers/authentication/authentication/utils.d.ts +12 -0
- package/lib/providers/authentication/authentication/utils.js +18 -0
- package/lib/providers/authentication/common/types.d.ts +1 -0
- package/lib/providers/authentication/common/types.js +1 -0
- package/lib/providers/authentication/common/utils.d.ts +6 -0
- package/lib/providers/authentication/common/utils.js +11 -0
- package/lib/providers/authentication/credentials/actions.d.ts +8 -0
- package/lib/providers/authentication/credentials/actions.js +12 -0
- package/lib/providers/authentication/credentials/constants.d.ts +2 -0
- package/lib/providers/authentication/credentials/constants.js +3 -0
- package/lib/providers/authentication/credentials/context.d.ts +2 -0
- package/lib/providers/authentication/credentials/context.js +6 -0
- package/lib/providers/authentication/credentials/dispatch.d.ts +12 -0
- package/lib/providers/authentication/credentials/dispatch.js +22 -0
- package/lib/providers/authentication/credentials/hook.d.ts +6 -0
- package/lib/providers/authentication/credentials/hook.js +9 -0
- package/lib/providers/authentication/credentials/reducer.d.ts +8 -0
- package/lib/providers/authentication/credentials/reducer.js +22 -0
- package/lib/providers/authentication/credentials/types.d.ts +24 -0
- package/lib/providers/authentication/credentials/types.js +5 -0
- package/lib/providers/authentication/terra/context.d.ts +2 -0
- package/lib/providers/authentication/terra/context.js +7 -0
- package/lib/providers/authentication/terra/hook.d.ts +6 -0
- package/lib/providers/authentication/terra/hook.js +9 -0
- package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.d.ts +2 -0
- package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.js +7 -0
- package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.d.ts +3 -7
- package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.js +1 -5
- package/lib/providers/authentication/terra/hooks/useFetchProfiles.d.ts +13 -0
- package/lib/providers/authentication/terra/hooks/useFetchProfiles.js +31 -0
- package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.js +11 -6
- package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.js +11 -6
- package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.js +11 -6
- package/lib/providers/authentication/terra/hooks/utils.d.ts +16 -0
- package/lib/providers/authentication/terra/hooks/utils.js +19 -0
- package/lib/providers/authentication/terra/provider.d.ts +2 -0
- package/lib/providers/authentication/terra/provider.js +42 -0
- package/lib/providers/authentication/terra/types.d.ts +20 -0
- package/lib/providers/authentication/terra/types.js +6 -0
- package/lib/providers/authentication/terra/utils.d.ts +19 -0
- package/lib/providers/authentication/terra/utils.js +36 -0
- package/lib/providers/authentication/token/constants.d.ts +2 -0
- package/lib/providers/authentication/token/constants.js +4 -0
- package/lib/providers/authentication/token/dispatch.d.ts +12 -0
- package/lib/providers/authentication/token/dispatch.js +22 -0
- package/lib/providers/authentication/token/reducer.d.ts +8 -0
- package/lib/providers/authentication/token/reducer.js +22 -0
- package/lib/providers/authentication/token/types.d.ts +28 -0
- package/lib/providers/authentication/token/types.js +5 -0
- package/lib/providers/exploreState.js +3 -5
- package/lib/providers/googleSignInAuthentication/common/types.d.ts +17 -0
- package/lib/providers/googleSignInAuthentication/common/types.js +1 -0
- package/lib/providers/googleSignInAuthentication/constants.d.ts +4 -0
- package/lib/providers/googleSignInAuthentication/constants.js +12 -0
- package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.d.ts +3 -0
- package/lib/providers/googleSignInAuthentication/hooks/useGoogleSignInService.js +36 -0
- package/lib/providers/googleSignInAuthentication/profile/types.d.ts +14 -0
- package/lib/providers/googleSignInAuthentication/profile/types.js +1 -0
- package/lib/providers/googleSignInAuthentication/profile/utils.d.ts +8 -0
- package/lib/providers/googleSignInAuthentication/profile/utils.js +25 -0
- package/lib/providers/googleSignInAuthentication/provider.d.ts +2 -0
- package/lib/providers/googleSignInAuthentication/provider.js +40 -0
- package/lib/providers/googleSignInAuthentication/service/constants.d.ts +4 -0
- package/lib/providers/googleSignInAuthentication/service/constants.js +9 -0
- package/lib/providers/googleSignInAuthentication/service/service.d.ts +6 -0
- package/lib/providers/googleSignInAuthentication/service/service.js +43 -0
- package/lib/providers/googleSignInAuthentication/types.d.ts +6 -0
- package/lib/providers/googleSignInAuthentication/types.js +1 -0
- package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.d.ts +2 -0
- package/lib/providers/nextAuthAuthentication/hooks/useNextAuthService.js +14 -0
- package/lib/providers/nextAuthAuthentication/provider.d.ts +2 -0
- package/lib/providers/nextAuthAuthentication/provider.js +30 -0
- package/lib/providers/nextAuthAuthentication/service/service.d.ts +6 -0
- package/lib/providers/nextAuthAuthentication/service/service.js +12 -0
- package/lib/providers/nextAuthAuthentication/types.d.ts +8 -0
- package/lib/providers/nextAuthAuthentication/types.js +1 -0
- package/lib/routes/constants.d.ts +3 -0
- package/lib/routes/constants.js +3 -0
- package/lib/styles/common/mui/button.d.ts +3 -0
- package/lib/styles/common/mui/button.js +17 -0
- package/lib/styles/common/mui/paper.d.ts +2 -0
- package/lib/styles/common/mui/paper.js +9 -0
- package/lib/styles/common/mui/popover.d.ts +3 -0
- package/lib/styles/common/mui/popover.js +10 -0
- package/lib/theme/common/entities.d.ts +6 -0
- package/lib/theme/common/entities.js +1 -0
- package/lib/views/LoginView/loginView.d.ts +5 -1
- package/lib/views/LoginView/loginView.js +6 -4
- package/package.json +3 -2
- package/src/components/Authentication/components/SessionController/components/GoogleSessionController/SessionController.tsx +38 -0
- package/src/components/Authentication/components/SessionController/components/GoogleSessionController/types.ts +7 -0
- package/src/components/Authentication/components/SessionController/components/NextSessionController/SessionController.tsx +23 -0
- package/src/components/Authentication/components/SessionController/components/NextSessionController/constants.ts +21 -0
- package/src/components/Authentication/components/SessionController/components/NextSessionController/types.ts +5 -0
- package/src/components/Authentication/components/SessionController/components/NextSessionController/utils.ts +74 -0
- package/src/components/ComponentCreator/ComponentCreator.tsx +4 -3
- package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/FormStep/components/AcceptTerraTOS/acceptTerraTOS.tsx +4 -4
- package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/components/NIHAccountExpiryWarning/nihAccountExpiryWarning.tsx +1 -1
- package/src/components/Export/components/ExportToTerra/components/TerraSetUpForm/terraSetUpForm.tsx +9 -6
- package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/authentication.tsx +27 -25
- package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.styles.ts +2 -2
- package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.tsx +18 -42
- package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/constants.ts +19 -0
- package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/Button/button.styles.ts +3 -2
- package/src/components/Layout/components/Header/header.tsx +1 -1
- package/src/components/Login/components/Button/button.styles.ts +12 -0
- package/src/components/Login/components/Button/button.tsx +8 -0
- package/src/components/Login/components/Button/constants.ts +8 -0
- package/src/components/Login/components/Button/types.ts +4 -0
- package/src/components/Login/login.tsx +28 -28
- package/src/components/Login/types.ts +11 -0
- package/src/components/common/Banner/components/SessionTimeout/sessionTimeout.tsx +1 -1
- package/src/components/common/CustomIcon/common/entities.ts +1 -4
- package/src/components/common/CustomIcon/components/GoogleIcon/googleIcon.tsx +3 -4
- package/src/config/entities.ts +20 -25
- package/src/hooks/authentication/auth/useAuthReducer.ts +16 -0
- package/src/hooks/authentication/authentication/useAuthenticationReducer.ts +16 -0
- package/src/hooks/authentication/config/useAuthenticationConfig.ts +13 -0
- package/src/hooks/authentication/credentials/useCredentialsReducer.ts +13 -0
- package/src/hooks/authentication/profile/types.ts +9 -0
- package/src/hooks/authentication/profile/useProfile.ts +21 -0
- package/src/hooks/authentication/providers/types.ts +7 -0
- package/src/hooks/authentication/providers/useProviders.ts +23 -0
- package/src/hooks/authentication/session/useSessionActive.ts +51 -0
- package/src/hooks/authentication/session/useSessionCallbackUrl.ts +25 -0
- package/src/hooks/authentication/session/useSessionIdleTimer.ts +10 -0
- package/src/hooks/{useSessionTimeout.ts → authentication/session/useSessionTimeout.ts} +2 -2
- package/src/hooks/{useAuthentication → authentication/terra}/useAuthenticationForm.ts +8 -13
- package/src/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.ts +3 -4
- package/src/hooks/authentication/token/types.ts +5 -0
- package/src/hooks/authentication/token/useToken.ts +9 -0
- package/src/hooks/authentication/token/useTokenReducer.ts +19 -0
- package/src/hooks/useEntityList.ts +2 -2
- package/src/hooks/useFetchEntity.tsx +3 -3
- package/src/hooks/useFileManifest/useFetchFilesFacets.ts +2 -3
- package/src/hooks/useFileManifest/useFetchSummary.ts +2 -3
- package/src/hooks/useRequestFileLocation.ts +2 -3
- package/src/hooks/useRouteHistory.ts +65 -0
- package/src/hooks/useRouteRoot.ts +11 -0
- package/src/hooks/useSummary.ts +3 -3
- package/src/providers/authentication/auth/actions.ts +17 -0
- package/src/providers/authentication/auth/constants.ts +6 -0
- package/src/providers/authentication/auth/context.ts +9 -0
- package/src/providers/authentication/auth/dispatch.ts +58 -0
- package/src/providers/authentication/auth/hook.ts +11 -0
- package/src/providers/authentication/auth/reducer.ts +25 -0
- package/src/providers/authentication/auth/types.ts +63 -0
- package/src/providers/authentication/authentication/actions.ts +17 -0
- package/src/providers/authentication/authentication/constants.ts +6 -0
- package/src/providers/authentication/authentication/context.ts +8 -0
- package/src/providers/authentication/authentication/dispatch.ts +55 -0
- package/src/providers/authentication/authentication/hook.ts +11 -0
- package/src/providers/authentication/authentication/reducer.ts +34 -0
- package/src/providers/authentication/authentication/types.ts +64 -0
- package/src/providers/authentication/authentication/utils.ts +25 -0
- package/src/providers/authentication/common/types.ts +1 -0
- package/src/providers/authentication/common/utils.ts +11 -0
- package/src/providers/authentication/credentials/actions.ts +17 -0
- package/src/providers/authentication/credentials/constants.ts +5 -0
- package/src/providers/authentication/credentials/context.ts +8 -0
- package/src/providers/authentication/credentials/dispatch.ts +31 -0
- package/src/providers/authentication/credentials/hook.ts +11 -0
- package/src/providers/authentication/credentials/reducer.ts +30 -0
- package/src/providers/authentication/credentials/types.ts +33 -0
- package/src/providers/authentication/terra/context.ts +16 -0
- package/src/providers/authentication/terra/hook.ts +11 -0
- package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/constants.ts +9 -0
- package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/entities.ts +1 -7
- package/src/providers/authentication/terra/hooks/useFetchProfiles.ts +61 -0
- package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.ts +18 -7
- package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.ts +18 -7
- package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.ts +18 -7
- package/src/providers/authentication/terra/hooks/utils.ts +29 -0
- package/src/providers/authentication/terra/provider.tsx +60 -0
- package/src/providers/authentication/terra/types.ts +23 -0
- package/src/providers/authentication/terra/utils.ts +49 -0
- package/src/providers/authentication/token/constants.ts +6 -0
- package/src/providers/authentication/token/dispatch.ts +29 -0
- package/src/providers/authentication/token/reducer.ts +26 -0
- package/src/providers/authentication/token/types.ts +36 -0
- package/src/providers/exploreState.tsx +3 -4
- package/src/providers/googleSignInAuthentication/common/types.ts +28 -0
- package/src/providers/googleSignInAuthentication/constants.ts +17 -0
- package/src/providers/googleSignInAuthentication/hooks/useGoogleSignInService.ts +53 -0
- package/src/providers/googleSignInAuthentication/profile/types.ts +15 -0
- package/src/providers/googleSignInAuthentication/profile/utils.ts +29 -0
- package/src/providers/googleSignInAuthentication/provider.tsx +53 -0
- package/src/providers/googleSignInAuthentication/service/constants.ts +16 -0
- package/src/providers/googleSignInAuthentication/service/service.ts +68 -0
- package/src/providers/googleSignInAuthentication/types.ts +7 -0
- package/src/providers/nextAuthAuthentication/hooks/useNextAuthService.ts +26 -0
- package/src/providers/nextAuthAuthentication/provider.tsx +42 -0
- package/src/providers/nextAuthAuthentication/service/service.ts +14 -0
- package/src/providers/nextAuthAuthentication/types.ts +9 -0
- package/src/routes/constants.ts +3 -0
- package/src/styles/common/mui/button.ts +20 -0
- package/src/styles/common/mui/paper.ts +11 -0
- package/src/styles/common/mui/popover.ts +19 -0
- package/src/theme/common/entities.ts +7 -0
- package/src/views/LoginView/loginView.tsx +15 -9
- package/tests/getProfileStatus.test.ts +290 -0
- package/tests/terraProfileProvider.test.tsx +121 -0
- package/tests/transformRoute.test.ts +21 -0
- package/tests/useRouteHistory.test.ts +97 -0
- package/tests/useSessionActive.test.ts +107 -0
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.d.ts +0 -5
- package/lib/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.js +0 -29
- package/lib/components/Login/login.stories.d.ts +0 -6
- package/lib/components/Login/login.stories.js +0 -31
- package/lib/components/common/Button/components/LoginButton/loginButton.d.ts +0 -3
- package/lib/components/common/Button/components/LoginButton/loginButton.js +0 -6
- package/lib/components/common/Button/components/LoginButton/loginButton.styles.d.ts +0 -7
- package/lib/components/common/Button/components/LoginButton/loginButton.styles.js +0 -11
- package/lib/hooks/useAuthentication/useAuthentication.d.ts +0 -6
- package/lib/hooks/useAuthentication/useAuthentication.js +0 -9
- package/lib/hooks/useAuthentication/useAuthenticationComplete.d.ts +0 -6
- package/lib/hooks/useAuthentication/useAuthenticationComplete.js +0 -55
- package/lib/hooks/useAuthentication/useAuthenticationStatus.d.ts +0 -20
- package/lib/hooks/useAuthentication/useAuthenticationStatus.js +0 -32
- package/lib/hooks/useAuthentication/useFetchGoogleProfile.d.ts +0 -21
- package/lib/hooks/useAuthentication/useFetchGoogleProfile.js +0 -41
- package/lib/hooks/useAuthentication/useTokenClient.d.ts +0 -11
- package/lib/hooks/useAuthentication/useTokenClient.js +0 -29
- package/lib/hooks/useAuthenticationConfig.d.ts +0 -6
- package/lib/hooks/useAuthenticationConfig.js +0 -14
- package/lib/providers/authentication.d.ts +0 -51
- package/lib/providers/authentication.js +0 -110
- package/src/components/Layout/components/Header/components/Content/components/Actions/components/Authentication/components/AuthenticationMenu/authenticationMenu.stories.tsx +0 -35
- package/src/components/Login/login.stories.tsx +0 -43
- package/src/components/common/Button/components/LoginButton/loginButton.styles.ts +0 -13
- package/src/components/common/Button/components/LoginButton/loginButton.tsx +0 -16
- package/src/hooks/useAuthentication/useAuthentication.tsx +0 -10
- package/src/hooks/useAuthentication/useAuthenticationComplete.ts +0 -66
- package/src/hooks/useAuthentication/useAuthenticationStatus.ts +0 -49
- package/src/hooks/useAuthentication/useFetchGoogleProfile.ts +0 -68
- package/src/hooks/useAuthentication/useTokenClient.ts +0 -54
- package/src/hooks/useAuthenticationConfig.ts +0 -18
- package/src/providers/authentication.tsx +0 -181
- package/tests/authentication.test.ts +0 -142
- package/tests/useAuthenticationStatus.test.ts +0 -155
- /package/lib/hooks/{useSessionTimeout.d.ts → authentication/session/useSessionTimeout.d.ts} +0 -0
- /package/lib/hooks/{useAuthentication → authentication/terra}/useAuthenticationNIHExpiry.d.ts +0 -0
- /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.d.ts +0 -0
- /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.js +0 -0
- /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraNIHProfile.d.ts +0 -0
- /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraProfile.d.ts +0 -0
- /package/lib/{hooks/useAuthentication → providers/authentication/terra/hooks}/useFetchTerraTermsOfService.d.ts +0 -0
- /package/src/{hooks/useAuthentication → providers/authentication/terra/hooks}/common/utils.ts +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { SvgIconProps } from "@mui/material";
|
|
2
2
|
/**
|
|
3
3
|
* Custom Google logo icon.
|
|
4
4
|
*/
|
|
5
|
-
export declare const GoogleIcon: ({ fontSize, viewBox, ...props }:
|
|
5
|
+
export declare const GoogleIcon: ({ fontSize, viewBox, ...props }: SvgIconProps) => JSX.Element;
|
|
@@ -3,7 +3,7 @@ import React from "react";
|
|
|
3
3
|
/**
|
|
4
4
|
* Custom Google logo icon.
|
|
5
5
|
*/
|
|
6
|
-
export const GoogleIcon = ({ fontSize = "xsmall", viewBox = "0 0 20 20", ...props
|
|
6
|
+
export const GoogleIcon = ({ fontSize = "xsmall", viewBox = "0 0 20 20", ...props }) => {
|
|
7
7
|
return (React.createElement(SvgIcon, { fontSize: fontSize, viewBox: viewBox, ...props },
|
|
8
8
|
React.createElement("path", { d: "M19.7874 10.2249C19.7874 9.56659 19.7291 8.94159 19.6291 8.33325H10.2124V12.0916H15.6041C15.3624 13.3249 14.6541 14.3666 13.6041 15.0749V17.5749H16.8207C18.7041 15.8333 19.7874 13.2666 19.7874 10.2249Z", fill: "#4285F4" }),
|
|
9
9
|
React.createElement("path", { d: "M10.2126 20.0001C12.9126 20.0001 15.1709 19.1001 16.8209 17.5751L13.6043 15.0751C12.7043 15.6751 11.5626 16.0418 10.2126 16.0418C7.60427 16.0418 5.39593 14.2834 4.60427 11.9084H1.2876V14.4834C2.92926 17.7501 6.30427 20.0001 10.2126 20.0001Z", fill: "#34A853" }),
|
package/lib/config/entities.d.ts
CHANGED
|
@@ -6,7 +6,9 @@ import { HeroTitle } from "../components/common/Title/title";
|
|
|
6
6
|
import { FooterProps } from "../components/Layout/components/Footer/footer";
|
|
7
7
|
import { HeaderProps } from "../components/Layout/components/Header/header";
|
|
8
8
|
import { ExploreMode } from "../hooks/useExploreMode";
|
|
9
|
-
import {
|
|
9
|
+
import { AuthState } from "../providers/authentication/auth/types";
|
|
10
|
+
import { UserProfile } from "../providers/authentication/authentication/types";
|
|
11
|
+
import { ProviderId } from "../providers/authentication/common/types";
|
|
10
12
|
import { ExploreState } from "../providers/exploreState";
|
|
11
13
|
import { FileManifestState } from "../providers/fileManifestState";
|
|
12
14
|
import { SystemStatus, SystemStatusResponse } from "../providers/systemStatus";
|
|
@@ -22,13 +24,17 @@ export interface AnalyticsConfig {
|
|
|
22
24
|
* Interface to define the authentication configuration for a given site.
|
|
23
25
|
*/
|
|
24
26
|
export interface AuthenticationConfig {
|
|
25
|
-
|
|
27
|
+
providers?: OAuthProvider[];
|
|
28
|
+
services?: AuthService[];
|
|
26
29
|
termsOfService?: ReactNode;
|
|
27
|
-
terraAuthConfig?: TerraAuthConfig;
|
|
28
30
|
text?: ReactNode;
|
|
29
31
|
title: string;
|
|
30
32
|
warning?: ReactNode;
|
|
31
33
|
}
|
|
34
|
+
export interface AuthService {
|
|
35
|
+
endpoint: Record<string, string>;
|
|
36
|
+
id: string;
|
|
37
|
+
}
|
|
32
38
|
/**
|
|
33
39
|
* Interface to define the set of components that will be used for the back page.
|
|
34
40
|
*/
|
|
@@ -169,14 +175,6 @@ export type GetIdFunction<T> = (detail: T) => string;
|
|
|
169
175
|
* Get title function.
|
|
170
176
|
*/
|
|
171
177
|
export type GetTitleFunction<T> = (detail?: T) => string | undefined;
|
|
172
|
-
/**
|
|
173
|
-
* Google GIS authentication configuration.
|
|
174
|
-
*/
|
|
175
|
-
export interface GoogleGISAuthConfig {
|
|
176
|
-
clientId: string;
|
|
177
|
-
googleProfileEndpoint: string;
|
|
178
|
-
scope: string;
|
|
179
|
-
}
|
|
180
178
|
/**
|
|
181
179
|
* Grid track configuration.
|
|
182
180
|
*/
|
|
@@ -219,12 +217,18 @@ export interface ListViewConfig {
|
|
|
219
217
|
rowSelectionView?: ComponentsConfig;
|
|
220
218
|
subTitleHero?: ComponentsConfig;
|
|
221
219
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
220
|
+
export interface OAuthProvider<P = any> {
|
|
221
|
+
authorization: {
|
|
222
|
+
params: {
|
|
223
|
+
scope: string;
|
|
224
|
+
};
|
|
225
|
+
};
|
|
226
|
+
clientId: string;
|
|
227
|
+
icon: ReactNode;
|
|
228
|
+
id: ProviderId;
|
|
229
|
+
name: string;
|
|
230
|
+
profile: (profile: P) => UserProfile;
|
|
231
|
+
userinfo: string;
|
|
228
232
|
}
|
|
229
233
|
/**
|
|
230
234
|
* Option Method.
|
|
@@ -345,11 +349,6 @@ export interface TabConfig {
|
|
|
345
349
|
tabIconPosition?: MTabProps["iconPosition"];
|
|
346
350
|
tabName?: string;
|
|
347
351
|
}
|
|
348
|
-
export interface TerraAuthConfig {
|
|
349
|
-
termsOfServiceEndpoint: string;
|
|
350
|
-
terraNIHProfileEndpoint?: string;
|
|
351
|
-
terraProfileEndpoint: string;
|
|
352
|
-
}
|
|
353
352
|
/**
|
|
354
353
|
* Theme options function.
|
|
355
354
|
* Defines theme options, and provides a reference to the specified theme.
|
|
@@ -359,7 +358,7 @@ export type ThemeOptionsFn = (theme: Theme) => ThemeOptions;
|
|
|
359
358
|
* View context.
|
|
360
359
|
*/
|
|
361
360
|
export interface ViewContext<T extends RowData, TData = unknown> {
|
|
362
|
-
authState: Pick<
|
|
361
|
+
authState: Pick<AuthState, "isAuthenticated">;
|
|
363
362
|
cellContext?: CellContext<T, TData>;
|
|
364
363
|
entityConfig: EntityConfig;
|
|
365
364
|
exploreState: ExploreState;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { useReducer } from "react";
|
|
2
|
+
import { DEFAULT_AUTH_STATE } from "../../../providers/authentication/auth/constants";
|
|
3
|
+
import { authReducer } from "../../../providers/authentication/auth/reducer";
|
|
4
|
+
import { initializer } from "../../../providers/authentication/common/utils";
|
|
5
|
+
export const useAuthReducer = (initialState = DEFAULT_AUTH_STATE) => {
|
|
6
|
+
const [authState, authDispatch] = useReducer(authReducer, initialState, initializer);
|
|
7
|
+
return { authDispatch, authState };
|
|
8
|
+
};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import { AuthenticationContextProps } from "../../../providers/authentication/authentication/types";
|
|
2
|
+
export declare const useAuthenticationReducer: (initialState?: import("../../../providers/authentication/authentication/types").AuthenticationState) => AuthenticationContextProps;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { useReducer } from "react";
|
|
2
|
+
import { DEFAULT_AUTHENTICATION_STATE } from "../../../providers/authentication/authentication/constants";
|
|
3
|
+
import { authenticationReducer } from "../../../providers/authentication/authentication/reducer";
|
|
4
|
+
import { initializer } from "../../../providers/authentication/common/utils";
|
|
5
|
+
export const useAuthenticationReducer = (initialState = DEFAULT_AUTHENTICATION_STATE) => {
|
|
6
|
+
const [authenticationState, authenticationDispatch] = useReducer(authenticationReducer, initialState, initializer);
|
|
7
|
+
return { authenticationDispatch, authenticationState };
|
|
8
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { useConfig } from "../../useConfig";
|
|
2
|
+
/**
|
|
3
|
+
* Returns the authentication configuration.
|
|
4
|
+
* @returns authentication configuration.
|
|
5
|
+
*/
|
|
6
|
+
export const useAuthenticationConfig = () => {
|
|
7
|
+
const { config: { authentication }, } = useConfig();
|
|
8
|
+
return authentication;
|
|
9
|
+
};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { useReducer } from "react";
|
|
2
|
+
import { DEFAULT_CREDENTIALS_STATE } from "../../../providers/authentication/credentials/constants";
|
|
3
|
+
import { credentialsReducer } from "../../../providers/authentication/credentials/reducer";
|
|
4
|
+
export const useCredentialsReducer = () => {
|
|
5
|
+
const [credentialsState, credentialsDispatch] = useReducer(credentialsReducer, undefined, () => DEFAULT_CREDENTIALS_STATE);
|
|
6
|
+
return { credentialsDispatch, credentialsState };
|
|
7
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useAuth } from "../../../providers/authentication/auth/hook";
|
|
2
|
+
import { AUTH_STATUS } from "../../../providers/authentication/auth/types";
|
|
3
|
+
import { useAuthentication } from "../../../providers/authentication/authentication/hook";
|
|
4
|
+
/**
|
|
5
|
+
* Profile hook - returns user profile.
|
|
6
|
+
* @returns user profile.
|
|
7
|
+
*/
|
|
8
|
+
export const useProfile = () => {
|
|
9
|
+
const { authState: { status }, } = useAuth();
|
|
10
|
+
const { authenticationState: { profile }, } = useAuthentication();
|
|
11
|
+
return {
|
|
12
|
+
isLoading: status === AUTH_STATUS.PENDING,
|
|
13
|
+
profile: profile,
|
|
14
|
+
};
|
|
15
|
+
};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { OAuthProvider } from "../../../config/entities";
|
|
2
|
+
import { ProviderId } from "../../../providers/authentication/common/types";
|
|
3
|
+
export interface UseProviders {
|
|
4
|
+
findProvider: (providerId: ProviderId) => OAuthProvider | undefined;
|
|
5
|
+
providers: OAuthProvider[] | undefined;
|
|
6
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { useCallback } from "react";
|
|
2
|
+
import { useConfig } from "../../useConfig";
|
|
3
|
+
/**
|
|
4
|
+
* Hook to facilitate the retrieval of authentication providers.
|
|
5
|
+
* @returns authentication providers and a function to find a provider by id.
|
|
6
|
+
*/
|
|
7
|
+
export const useProviders = () => {
|
|
8
|
+
const { config } = useConfig();
|
|
9
|
+
const providers = config.authentication?.providers;
|
|
10
|
+
const findProvider = useCallback((providerId) => {
|
|
11
|
+
return providers?.find(({ id }) => id === providerId);
|
|
12
|
+
}, [providers]);
|
|
13
|
+
return { findProvider, providers };
|
|
14
|
+
};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { AuthState } from "../../../providers/authentication/auth/types";
|
|
2
|
+
import { AuthenticationState } from "../../../providers/authentication/authentication/types";
|
|
3
|
+
export declare const useSessionActive: (authState: AuthState, authenticationState: AuthenticationState) => void;
|
|
4
|
+
/**
|
|
5
|
+
* Finds the most recent route in the history that is not the login route and removes the inactivity timeout query parameter.
|
|
6
|
+
* The inactivity timeout query parameter is appended to a URL to indicate that a session has expired. This function iterates
|
|
7
|
+
* through the history of routes in reverse order, skipping any routes that lead to the login page, and returns the first route
|
|
8
|
+
* that isn't the login route with the inactivity timeout parameter removed.
|
|
9
|
+
* @param routes - An array of routes representing the navigation history, in order of navigation.
|
|
10
|
+
* @returns The most recent valid route without the inactivity timeout parameter, or `undefined` if no such route is found.
|
|
11
|
+
*/
|
|
12
|
+
export declare function transformRoute(routes: string[]): string | undefined;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import Router from "next/router";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
import { escapeRegExp } from "../../../common/utils";
|
|
4
|
+
import { AUTH_STATUS, } from "../../../providers/authentication/auth/types";
|
|
5
|
+
import { AUTHENTICATION_STATUS, } from "../../../providers/authentication/authentication/types";
|
|
6
|
+
import { ROUTE } from "../../../routes/constants";
|
|
7
|
+
import { useRouteHistory } from "../../useRouteHistory";
|
|
8
|
+
import { INACTIVITY_PARAM } from "./useSessionTimeout";
|
|
9
|
+
export const useSessionActive = (authState, authenticationState) => {
|
|
10
|
+
const { status: authStatus } = authState;
|
|
11
|
+
const { status: authenticationStatus } = authenticationState;
|
|
12
|
+
const { callbackUrl } = useRouteHistory(2);
|
|
13
|
+
const isReady = authenticationStatus === AUTHENTICATION_STATUS.SETTLED &&
|
|
14
|
+
authStatus === AUTH_STATUS.SETTLED;
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (!isReady)
|
|
17
|
+
return;
|
|
18
|
+
Router.push(callbackUrl(transformRoute));
|
|
19
|
+
}, [callbackUrl, isReady]);
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Finds the most recent route in the history that is not the login route and removes the inactivity timeout query parameter.
|
|
23
|
+
* The inactivity timeout query parameter is appended to a URL to indicate that a session has expired. This function iterates
|
|
24
|
+
* through the history of routes in reverse order, skipping any routes that lead to the login page, and returns the first route
|
|
25
|
+
* that isn't the login route with the inactivity timeout parameter removed.
|
|
26
|
+
* @param routes - An array of routes representing the navigation history, in order of navigation.
|
|
27
|
+
* @returns The most recent valid route without the inactivity timeout parameter, or `undefined` if no such route is found.
|
|
28
|
+
*/
|
|
29
|
+
export function transformRoute(routes) {
|
|
30
|
+
for (const route of routes) {
|
|
31
|
+
if (route === ROUTE.LOGIN) {
|
|
32
|
+
continue;
|
|
33
|
+
}
|
|
34
|
+
return route?.replace(new RegExp(`\\?${escapeRegExp(INACTIVITY_PARAM)}(?:$|[=&].*)`), "");
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { useMemo } from "react";
|
|
2
|
+
import { useRouteRoot } from "../../useRouteRoot";
|
|
3
|
+
import { INACTIVITY_PARAM } from "./useSessionTimeout";
|
|
4
|
+
export const useSessionCallbackUrl = () => {
|
|
5
|
+
const route = useRouteRoot();
|
|
6
|
+
const callbackUrl = useMemo(() => getUrl(route), [route]);
|
|
7
|
+
return { callbackUrl };
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Returns the URL with the inactivity query parameter set to true.
|
|
11
|
+
* @param url - URL.
|
|
12
|
+
* @returns URL.
|
|
13
|
+
*/
|
|
14
|
+
function getUrl(url) {
|
|
15
|
+
if (typeof window === "undefined")
|
|
16
|
+
return;
|
|
17
|
+
const urlObj = new URL(url, window.location.origin);
|
|
18
|
+
urlObj.searchParams.set(INACTIVITY_PARAM, "true");
|
|
19
|
+
return urlObj.href;
|
|
20
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { IIdleTimerProps } from "react-idle-timer/dist/types/IIdleTimerProps";
|
|
2
|
+
/**
|
|
3
|
+
* Sets a session timeout that triggers when the user has been idle for the specified duration.
|
|
4
|
+
* @param idleTimerProps - The parameters for the session timeout.
|
|
5
|
+
*/
|
|
6
|
+
export declare const useSessionIdleTimer: (idleTimerProps: IIdleTimerProps) => void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { useIdleTimer } from "react-idle-timer";
|
|
2
|
+
/**
|
|
3
|
+
* Sets a session timeout that triggers when the user has been idle for the specified duration.
|
|
4
|
+
* @param idleTimerProps - The parameters for the session timeout.
|
|
5
|
+
*/
|
|
6
|
+
export const useSessionIdleTimer = (idleTimerProps) => {
|
|
7
|
+
useIdleTimer(idleTimerProps);
|
|
8
|
+
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Router from "next/router";
|
|
2
2
|
import { useCallback, useEffect, useState } from "react";
|
|
3
|
-
import { useConfig } from "
|
|
4
|
-
import { useLocation } from "
|
|
3
|
+
import { useConfig } from "../../useConfig";
|
|
4
|
+
import { useLocation } from "../../useLocation";
|
|
5
5
|
export const INACTIVITY_PARAM = "inactivityTimeout";
|
|
6
6
|
/**
|
|
7
7
|
* Session timeout hook.
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useAuthentication } from "./useAuthentication";
|
|
1
|
+
import { useTerraProfile } from "../../../providers/authentication/terra/hook";
|
|
3
2
|
export var ONBOARDING_STEP;
|
|
4
3
|
(function (ONBOARDING_STEP) {
|
|
5
4
|
ONBOARDING_STEP[ONBOARDING_STEP["NIH_ACCOUNT"] = 3] = "NIH_ACCOUNT";
|
|
@@ -11,14 +10,12 @@ export var ONBOARDING_STEP;
|
|
|
11
10
|
* @returns onboarding steps and corresponding status.
|
|
12
11
|
*/
|
|
13
12
|
export const useAuthenticationForm = () => {
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const loginStatuses = concatLoginStatuses(authentication).filter(filterLoginStatus);
|
|
13
|
+
const terraProfile = useTerraProfile();
|
|
14
|
+
const loginStatuses = concatLoginStatuses(terraProfile).filter(filterLoginStatus);
|
|
17
15
|
const onboardingStatusByStep = getOnboardingStatusByStep(loginStatuses);
|
|
18
16
|
const isComplete = isAuthenticationComplete(onboardingStatusByStep);
|
|
19
17
|
return {
|
|
20
18
|
isComplete,
|
|
21
|
-
isReady,
|
|
22
19
|
onboardingStatusByStep,
|
|
23
20
|
};
|
|
24
21
|
};
|
|
@@ -37,11 +34,11 @@ function isAuthenticationComplete(onboardingStatusByStep) {
|
|
|
37
34
|
}
|
|
38
35
|
/**
|
|
39
36
|
* Returns all login statuses, ordered by onboarding step.
|
|
40
|
-
* @param
|
|
37
|
+
* @param terraProfile - Terra profile.
|
|
41
38
|
* @returns login statuses.
|
|
42
39
|
*/
|
|
43
|
-
function concatLoginStatuses(
|
|
44
|
-
const { terraNIHProfileLoginStatus, terraProfileLoginStatus, terraTOSLoginStatus, } =
|
|
40
|
+
function concatLoginStatuses(terraProfile) {
|
|
41
|
+
const { terraNIHProfileLoginStatus, terraProfileLoginStatus, terraTOSLoginStatus, } = terraProfile;
|
|
45
42
|
return [
|
|
46
43
|
terraProfileLoginStatus,
|
|
47
44
|
terraTOSLoginStatus,
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { useTerraProfile } from "../../../providers/authentication/terra/hook";
|
|
2
|
+
import { REQUEST_STATUS } from "../../../providers/authentication/terra/hooks/common/entities";
|
|
3
3
|
const WARNING_WINDOW_SECONDS = 60 * 60 * 24 * 5; // 5 days.
|
|
4
4
|
/**
|
|
5
5
|
* Handles authentication NIH expiry.
|
|
6
6
|
* @returns NIH expiry status.
|
|
7
7
|
*/
|
|
8
8
|
export const useAuthenticationNIHExpiry = () => {
|
|
9
|
-
const
|
|
10
|
-
const { terraNIHProfileLoginStatus } = authentication;
|
|
9
|
+
const { terraNIHProfileLoginStatus } = useTerraProfile();
|
|
11
10
|
const { requestStatus, response } = terraNIHProfileLoginStatus;
|
|
12
11
|
const { linkExpireTime } = response || {};
|
|
13
12
|
const isReady = requestStatus === REQUEST_STATUS.COMPLETED;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TokenContextProps } from "../../../providers/authentication/token/types";
|
|
2
|
+
/**
|
|
3
|
+
* Token reducer: Manages the internal state of the token within the OAuth provider.
|
|
4
|
+
* This reducer handles the token locally until certain conditions are met.
|
|
5
|
+
* For releasing the token to the rest of the app, use the credentials reducer.
|
|
6
|
+
*/
|
|
7
|
+
export declare const useTokenReducer: () => TokenContextProps;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { useReducer } from "react";
|
|
2
|
+
import { DEFAULT_TOKEN_STATE } from "../../../providers/authentication/token/constants";
|
|
3
|
+
import { tokenReducer } from "../../../providers/authentication/token/reducer";
|
|
4
|
+
/**
|
|
5
|
+
* Token reducer: Manages the internal state of the token within the OAuth provider.
|
|
6
|
+
* This reducer handles the token locally until certain conditions are met.
|
|
7
|
+
* For releasing the token to the rest of the app, use the credentials reducer.
|
|
8
|
+
*/
|
|
9
|
+
export const useTokenReducer = () => {
|
|
10
|
+
const [tokenState, tokenDispatch] = useReducer(tokenReducer, undefined, () => DEFAULT_TOKEN_STATE);
|
|
11
|
+
return { tokenDispatch, tokenState };
|
|
12
|
+
};
|
|
@@ -3,8 +3,8 @@ import { transformAzulPagination, transformFilters, transformTermFacets, } from
|
|
|
3
3
|
import { getEntityConfig } from "../config/utils";
|
|
4
4
|
import { ExploreActionKind } from "../providers/exploreState";
|
|
5
5
|
import { DEFAULT_PAGINATION_STATE } from "../providers/exploreState/initializer/constants";
|
|
6
|
+
import { useToken } from "./authentication/token/useToken";
|
|
6
7
|
import { useAsync } from "./useAsync";
|
|
7
|
-
import { useAuthentication } from "./useAuthentication/useAuthentication";
|
|
8
8
|
import { useConfig } from "./useConfig";
|
|
9
9
|
import { useEntityService } from "./useEntityService";
|
|
10
10
|
import { EXPLORE_MODE, useExploreMode } from "./useExploreMode";
|
|
@@ -18,7 +18,7 @@ import { useURLFilterParams } from "./useURLFilterParams";
|
|
|
18
18
|
*/
|
|
19
19
|
export const useEntityList = (staticResponse) => {
|
|
20
20
|
const { data: staticData, entityListType } = staticResponse;
|
|
21
|
-
const { token } =
|
|
21
|
+
const { token } = useToken();
|
|
22
22
|
const { config } = useConfig();
|
|
23
23
|
const { apiPath } = getEntityConfig(config.entities, entityListType);
|
|
24
24
|
const exploreMode = useExploreMode();
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useRouter } from "next/router";
|
|
2
2
|
import { useEffect, useMemo } from "react";
|
|
3
3
|
import { PARAMS_INDEX_UUID } from "../common/constants";
|
|
4
|
+
import { useToken } from "./authentication/token/useToken";
|
|
4
5
|
import { useAsync } from "./useAsync";
|
|
5
|
-
import { useAuthentication } from "./useAuthentication/useAuthentication";
|
|
6
6
|
import { useEntityService } from "./useEntityService";
|
|
7
7
|
import { EXPLORE_MODE, useExploreMode } from "./useExploreMode";
|
|
8
8
|
import { useExploreState } from "./useExploreState";
|
|
@@ -14,7 +14,7 @@ import { useExploreState } from "./useExploreState";
|
|
|
14
14
|
*/
|
|
15
15
|
export const useFetchEntity = (detailViewProps) => {
|
|
16
16
|
const { data: staticData, entityListType } = detailViewProps || {};
|
|
17
|
-
const { token } =
|
|
17
|
+
const { token } = useToken();
|
|
18
18
|
const exploreMode = useExploreMode();
|
|
19
19
|
const { exploreState } = useExploreState();
|
|
20
20
|
const { catalogState } = exploreState;
|
|
@@ -24,7 +24,8 @@ export const useFetchEntity = (detailViewProps) => {
|
|
|
24
24
|
const uuid = params?.[PARAMS_INDEX_UUID];
|
|
25
25
|
const { data: response, isIdle, isLoading, run } = useAsync();
|
|
26
26
|
const entityResponse = response || staticData;
|
|
27
|
-
const shouldFetchEntity = useMemo(() => isFetchRequired(exploreMode !== EXPLORE_MODE.CS_FETCH_CS_FILTERING, Boolean(token),
|
|
27
|
+
const shouldFetchEntity = useMemo(() => isFetchRequired(exploreMode !== EXPLORE_MODE.CS_FETCH_CS_FILTERING, Boolean(token), // TODO(cc), note a fetch is required if the token is true, but is unable to re-fetch on logout when token is undefined! Page is required to reload!
|
|
28
|
+
Boolean(catalogState), Boolean(entityResponse)), [catalogState, entityResponse, exploreMode, token]);
|
|
28
29
|
const isResponseLoading = shouldFetchEntity ? isIdle || isLoading : false;
|
|
29
30
|
useEffect(() => {
|
|
30
31
|
// Fetch entity if entity data originates from a request, and has not yet been requested.
|
|
@@ -2,8 +2,8 @@ import { useEffect, useMemo } from "react";
|
|
|
2
2
|
import { APIEndpoints, } from "../../apis/azul/common/entities";
|
|
3
3
|
import { fetchEntitiesFromURL } from "../../entity/common/service";
|
|
4
4
|
import { fetchQueryParams } from "../../utils/fetchQueryParams";
|
|
5
|
+
import { useToken } from "../authentication/token/useToken";
|
|
5
6
|
import { useAsync } from "../useAsync";
|
|
6
|
-
import { useAuthentication } from "../useAuthentication/useAuthentication";
|
|
7
7
|
import { useFetchRequestURL } from "../useFetchRequestURL";
|
|
8
8
|
import { bindEntitySearchResultsResponse } from "./common/utils";
|
|
9
9
|
/**
|
|
@@ -15,8 +15,7 @@ import { bindEntitySearchResultsResponse } from "./common/utils";
|
|
|
15
15
|
* @returns files facets.
|
|
16
16
|
*/
|
|
17
17
|
export const useFetchFilesFacets = (filters, catalog, searchParams, isEnabled) => {
|
|
18
|
-
|
|
19
|
-
const { token } = useAuthentication();
|
|
18
|
+
const { token } = useToken();
|
|
20
19
|
// Build request params.
|
|
21
20
|
const requestParams = fetchQueryParams(filters, catalog, searchParams);
|
|
22
21
|
// Build request URL.
|
|
@@ -2,8 +2,8 @@ import { useEffect } from "react";
|
|
|
2
2
|
import { APIEndpoints, } from "../../apis/azul/common/entities";
|
|
3
3
|
import { fetchSummaryFromURL } from "../../entity/api/service";
|
|
4
4
|
import { fetchQueryParams } from "../../utils/fetchQueryParams";
|
|
5
|
+
import { useToken } from "../authentication/token/useToken";
|
|
5
6
|
import { useAsync } from "../useAsync";
|
|
6
|
-
import { useAuthentication } from "../useAuthentication/useAuthentication";
|
|
7
7
|
import { useFetchRequestURL } from "../useFetchRequestURL";
|
|
8
8
|
/**
|
|
9
9
|
* Fetch file summary from summary endpoint, to populate summary in download flows.
|
|
@@ -13,8 +13,7 @@ import { useFetchRequestURL } from "../useFetchRequestURL";
|
|
|
13
13
|
* @returns file summaries.
|
|
14
14
|
*/
|
|
15
15
|
export const useFetchSummary = (filters, catalog, isEnabled) => {
|
|
16
|
-
|
|
17
|
-
const { token } = useAuthentication();
|
|
16
|
+
const { token } = useToken();
|
|
18
17
|
// Build request params.
|
|
19
18
|
const requestParams = fetchQueryParams(filters, catalog, undefined);
|
|
20
19
|
// Build request URL.
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useCallback, useEffect, useRef } from "react";
|
|
2
2
|
import { FILE_LOCATION_PENDING, FILE_LOCATION_SUCCESSFULLY, } from "../apis/azul/common/constants";
|
|
3
|
+
import { useToken } from "./authentication/token/useToken";
|
|
3
4
|
import { METHOD } from "./types";
|
|
4
5
|
import { useAsync } from "./useAsync";
|
|
5
|
-
import { useAuthentication } from "./useAuthentication/useAuthentication";
|
|
6
6
|
/**
|
|
7
7
|
* Returns fetch request options.
|
|
8
8
|
* @param accessToken - Access token.
|
|
@@ -72,8 +72,7 @@ const scheduleFileLocation = (url, accessToken, resolve, reject, active, retryAf
|
|
|
72
72
|
* @returns data object with the file location
|
|
73
73
|
*/
|
|
74
74
|
export const useRequestFileLocation = (url, method) => {
|
|
75
|
-
|
|
76
|
-
const { token } = useAuthentication();
|
|
75
|
+
const { token } = useToken();
|
|
77
76
|
const { data, isIdle, isLoading, isSuccess, run: runAsync, } = useAsync();
|
|
78
77
|
const active = useRef(true);
|
|
79
78
|
useEffect(() => {
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export type TransformRouteFn = (routes: string[]) => string | undefined;
|
|
2
|
+
export interface UseRouteHistory {
|
|
3
|
+
callbackUrl: (transformFn?: TransformRouteFn) => string;
|
|
4
|
+
}
|
|
5
|
+
export declare function useRouteHistory(maxHistory?: number): UseRouteHistory;
|
|
6
|
+
/**
|
|
7
|
+
* Generates a callback URL based on the provided history and root path.
|
|
8
|
+
* Returns the callback URL determined by the transform function or the second item in history and if neither condition is met, returns the root path.
|
|
9
|
+
* @param history - Navigation history.
|
|
10
|
+
* @param rootPath - The default root path to return if no other conditions are met.
|
|
11
|
+
* @param [transformFn] - An optional function that transforms the history array to a specific route.
|
|
12
|
+
* @returns {string} - The callback UR.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getCallbackUrl(history: string[], rootPath: string, transformFn?: TransformRouteFn): string;
|