From 29c82b3f46614e308a8464f078e028718166ff7b Mon Sep 17 00:00:00 2001 From: Andreas Ellewsen <ae@uio.no> Date: Thu, 27 Jan 2022 10:49:38 +0100 Subject: [PATCH] Refetch user info after completing registration If we don't fetch the info again, the frontpage will redirect us back to /guestregister because the user does not have registration_completed_date set. --- frontend/src/contexts/userContext.ts | 2 ++ frontend/src/providers/userProvider.tsx | 4 +++- .../routes/guest/register/steps/success.tsx | 22 +++++++++++++------ 3 files changed, 20 insertions(+), 8 deletions(-) diff --git a/frontend/src/contexts/userContext.ts b/frontend/src/contexts/userContext.ts index d5f18fc3..09486ee0 100644 --- a/frontend/src/contexts/userContext.ts +++ b/frontend/src/contexts/userContext.ts @@ -5,6 +5,7 @@ interface IUserContext { user: User fetchUserInfo: () => void clearUserInfo: () => void + getUserInfo: () => void } function noop() {} @@ -29,5 +30,6 @@ export const UserContext = createContext<IUserContext>({ }, fetchUserInfo: noop, clearUserInfo: noop, + getUserInfo: noop, }) export const useUserContext = () => useContext(UserContext) diff --git a/frontend/src/providers/userProvider.tsx b/frontend/src/providers/userProvider.tsx index 041b17f7..453bdc0b 100644 --- a/frontend/src/providers/userProvider.tsx +++ b/frontend/src/providers/userProvider.tsx @@ -126,7 +126,9 @@ function UserProvider(props: UserProviderProps) { } return ( - <UserContext.Provider value={{ user, fetchUserInfo, clearUserInfo }}> + <UserContext.Provider + value={{ user, fetchUserInfo, clearUserInfo, getUserInfo }} + > {children} </UserContext.Provider> ) diff --git a/frontend/src/routes/guest/register/steps/success.tsx b/frontend/src/routes/guest/register/steps/success.tsx index 7ac97a90..95e5a49d 100644 --- a/frontend/src/routes/guest/register/steps/success.tsx +++ b/frontend/src/routes/guest/register/steps/success.tsx @@ -1,26 +1,34 @@ -import React from 'react' +import React, { useEffect } from 'react' import { useTranslation } from 'react-i18next' import { useHistory } from 'react-router-dom' -import { Box, Button } from '@mui/material' +import { Button, Typography } from '@mui/material' +import { useUserContext } from 'contexts' const GuestSuccessStep = () => { const { t } = useTranslation(['common']) const history = useHistory() + const { getUserInfo } = useUserContext() + // Refetch user info after submission, so that the front page doesn't redirect us + // back because of outdated info + useEffect(() => { + getUserInfo() + }, []) return ( <> - <Box + <Typography sx={{ paddingTop: '1rem', paddingBottom: '1rem', - typography: 'h3', }} + variant="h2" > {t('thankYou')} - </Box> - - <Box sx={{ marginTop: '2rem' }}>{t('guestSubmitSuccessDescription')}</Box> + </Typography> + <Typography sx={{ marginTop: '2rem' }} paragraph> + {t('guestSubmitSuccessDescription')} + </Typography> <Button color="secondary" -- GitLab