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