about summary refs log tree commit diff
path: root/src/screens/Onboarding/state.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/screens/Onboarding/state.ts')
-rw-r--r--src/screens/Onboarding/state.ts33
1 files changed, 30 insertions, 3 deletions
diff --git a/src/screens/Onboarding/state.ts b/src/screens/Onboarding/state.ts
index 9452fbbc7..3031dfbf4 100644
--- a/src/screens/Onboarding/state.ts
+++ b/src/screens/Onboarding/state.ts
@@ -13,6 +13,7 @@ export type OnboardingState = {
     | 'algoFeeds'
     | 'topicalFeeds'
     | 'moderation'
+    | 'profile'
     | 'finished'
   activeStepIndex: number
 
@@ -30,6 +31,13 @@ export type OnboardingState = {
     feedUris: string[]
   }
   profileStepResults: {
+    image?: {
+      path: string
+      mime: string
+      size: number
+      width: number
+      height: number
+    }
     imageUri?: string
     imageMime?: string
   }
@@ -64,6 +72,7 @@ export type OnboardingAction =
     }
   | {
       type: 'setProfileStepResults'
+      image?: OnboardingState['profileStepResults']['image']
       imageUri: string
       imageMime: string
     }
@@ -80,7 +89,7 @@ export type ApiResponseMap = {
 
 export const initialState: OnboardingState = {
   hasPrev: false,
-  totalSteps: 7,
+  totalSteps: 8,
   activeStep: 'interests',
   activeStepIndex: 1,
 
@@ -102,6 +111,7 @@ export const initialState: OnboardingState = {
     feedUris: [],
   },
   profileStepResults: {
+    image: undefined,
     imageUri: '',
     imageMime: '',
   },
@@ -168,8 +178,11 @@ export function reducer(
         next.activeStep = 'moderation'
         next.activeStepIndex = 6
       } else if (s.activeStep === 'moderation') {
-        next.activeStep = 'finished'
+        next.activeStep = 'profile'
         next.activeStepIndex = 7
+      } else if (s.activeStep === 'profile') {
+        next.activeStep = 'finished'
+        next.activeStepIndex = 8
       }
       break
     }
@@ -189,9 +202,12 @@ export function reducer(
       } else if (s.activeStep === 'moderation') {
         next.activeStep = 'topicalFeeds'
         next.activeStepIndex = 5
-      } else if (s.activeStep === 'finished') {
+      } else if (s.activeStep === 'profile') {
         next.activeStep = 'moderation'
         next.activeStepIndex = 6
+      } else if (s.activeStep === 'finished') {
+        next.activeStep = 'profile'
+        next.activeStepIndex = 7
       }
       break
     }
@@ -226,6 +242,14 @@ export function reducer(
       }
       break
     }
+    case 'setProfileStepResults': {
+      next.profileStepResults = {
+        image: a.image,
+        imageUri: a.imageUri,
+        imageMime: a.imageMime,
+      }
+      break
+    }
   }
 
   const state = {
@@ -243,6 +267,7 @@ export function reducer(
     suggestedAccountsStepResults: state.suggestedAccountsStepResults,
     algoFeedsStepResults: state.algoFeedsStepResults,
     topicalFeedsStepResults: state.topicalFeedsStepResults,
+    profileStepResults: state.profileStepResults,
   })
 
   if (s.activeStep !== state.activeStep) {
@@ -276,6 +301,7 @@ export const initialStateReduced: OnboardingState = {
     feedUris: [],
   },
   profileStepResults: {
+    image: undefined,
     imageUri: '',
     imageMime: '',
   },
@@ -330,6 +356,7 @@ export function reducerReduced(
     }
     case 'setProfileStepResults': {
       next.profileStepResults = {
+        image: a.image,
         imageUri: a.imageUri,
         imageMime: a.imageMime,
       }