diff --git a/dictation_client/src/features/terms/selectors.ts b/dictation_client/src/features/terms/selectors.ts index 75f45b9..2716c88 100644 --- a/dictation_client/src/features/terms/selectors.ts +++ b/dictation_client/src/features/terms/selectors.ts @@ -22,3 +22,6 @@ export const selectTermVersions = (state: RootState) => { }; export const selectTier = (state: RootState) => state.terms.domain.tier; + +export const selectIsLoading = (state: RootState) => + state.terms.apps.isLoading === true; diff --git a/dictation_client/src/features/terms/termsSlice.ts b/dictation_client/src/features/terms/termsSlice.ts index 7f88271..242692e 100644 --- a/dictation_client/src/features/terms/termsSlice.ts +++ b/dictation_client/src/features/terms/termsSlice.ts @@ -39,16 +39,9 @@ export const termsSlice = createSlice({ builder.addCase(getAccountInfoMinimalAccessAsync.rejected, (state) => { state.apps.isLoading = false; }); - builder.addCase(getTermsInfoAsync.pending, (state) => { - state.apps.isLoading = true; - }); builder.addCase(getTermsInfoAsync.fulfilled, (state, actions) => { - state.apps.isLoading = false; state.domain.termsInfo = actions.payload.termsInfo; }); - builder.addCase(getTermsInfoAsync.rejected, (state) => { - state.apps.isLoading = false; - }); builder.addCase(updateAcceptedVersionAsync.pending, (state) => { state.apps.isLoading = true; }); diff --git a/dictation_client/src/pages/TermsPage/index.tsx b/dictation_client/src/pages/TermsPage/index.tsx index 777a115..0082cfd 100644 --- a/dictation_client/src/pages/TermsPage/index.tsx +++ b/dictation_client/src/pages/TermsPage/index.tsx @@ -13,6 +13,7 @@ import { getTermsInfoAsync, updateAcceptedVersionAsync, selectTier, + selectIsLoading, selectTermVersions, } from "features//terms"; import { selectLocalStorageKeyforIdToken } from "features/login"; @@ -27,7 +28,7 @@ const TermsPage: React.FC = (): JSX.Element => { selectLocalStorageKeyforIdToken ); const tier = useSelector(selectTier); - + const isLoading = useSelector(selectIsLoading); const [isCheckedEula, setIsCheckedEula] = useState(false); const [isCheckedPrivacyNotice, setIsCheckedPrivacyNotice] = useState(false); const [isCheckedDpa, setIsCheckedDpa] = useState(false); @@ -88,7 +89,15 @@ const TermsPage: React.FC = (): JSX.Element => { tier, dispatch, ]); - + if (isLoading) { + return ( + <> +
+

loading ...

+