about summary refs log tree commit diff
path: root/src/view/screens
diff options
context:
space:
mode:
Diffstat (limited to 'src/view/screens')
-rw-r--r--src/view/screens/Home.tsx10
-rw-r--r--src/view/screens/onboarding/RecommendedFeeds.tsx20
-rw-r--r--src/view/screens/onboarding/Welcome.tsx32
3 files changed, 55 insertions, 7 deletions
diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx
index 7017c698c..4397200e4 100644
--- a/src/view/screens/Home.tsx
+++ b/src/view/screens/Home.tsx
@@ -21,6 +21,7 @@ import {useOnMainScroll} from 'lib/hooks/useOnMainScroll'
 import {useAnalytics} from 'lib/analytics/analytics'
 import {ComposeIcon2} from 'lib/icons'
 import {isDesktopWeb, isMobileWebMediaQuery, isWeb} from 'platform/detection'
+import {useOnboarding} from 'lib/hooks/useOnboarding'
 
 const HEADER_OFFSET_MOBILE = 78
 const HEADER_OFFSET_DESKTOP = 50
@@ -31,7 +32,7 @@ const POLL_FREQ = 30e3 // 30sec
 
 type Props = NativeStackScreenProps<HomeTabNavigatorParams, 'Home'>
 export const HomeScreen = withAuthRequired(
-  observer(({navigation}: Props) => {
+  observer(({}: Props) => {
     const store = useStores()
     const pagerRef = React.useRef<PagerRef>(null)
     const [selectedPage, setSelectedPage] = React.useState(0)
@@ -39,12 +40,7 @@ export const HomeScreen = withAuthRequired(
     const [requestedCustomFeeds, setRequestedCustomFeeds] = React.useState<
       string[]
     >([])
-
-    React.useEffect(() => {
-      if (store.onboarding.isActive) {
-        navigation.navigate('Welcome')
-      }
-    }, [store.onboarding.isActive, navigation])
+    useOnboarding()
 
     React.useEffect(() => {
       const {pinned} = store.me.savedFeeds
diff --git a/src/view/screens/onboarding/RecommendedFeeds.tsx b/src/view/screens/onboarding/RecommendedFeeds.tsx
new file mode 100644
index 000000000..d27278456
--- /dev/null
+++ b/src/view/screens/onboarding/RecommendedFeeds.tsx
@@ -0,0 +1,20 @@
+import React from 'react'
+import {NativeStackScreenProps} from '@react-navigation/native-stack'
+import {HomeTabNavigatorParams} from 'lib/routes/types'
+import {useStores} from 'state/index'
+import {observer} from 'mobx-react-lite'
+import {RecommendedFeeds} from 'view/com/auth/onboarding/RecommendedFeeds'
+
+type Props = NativeStackScreenProps<HomeTabNavigatorParams, 'RecommendedFeeds'>
+export const RecommendedFeedsScreen = observer(({navigation}: Props) => {
+  const store = useStores()
+
+  const next = () => {
+    const nextScreenName = store.onboarding.next('RecommendedFeeds')
+    if (nextScreenName) {
+      navigation.navigate(nextScreenName)
+    }
+  }
+
+  return <RecommendedFeeds next={next} />
+})
diff --git a/src/view/screens/onboarding/Welcome.tsx b/src/view/screens/onboarding/Welcome.tsx
new file mode 100644
index 000000000..ea3e5ed77
--- /dev/null
+++ b/src/view/screens/onboarding/Welcome.tsx
@@ -0,0 +1,32 @@
+import React from 'react'
+import {NativeStackScreenProps} from '@react-navigation/native-stack'
+import {HomeTabNavigatorParams} from 'lib/routes/types'
+import {useStores} from 'state/index'
+import {observer} from 'mobx-react-lite'
+import {Welcome} from 'view/com/auth/onboarding/Welcome'
+
+type Props = NativeStackScreenProps<HomeTabNavigatorParams, 'Welcome'>
+export const WelcomeScreen = observer(({navigation}: Props) => {
+  const store = useStores()
+
+  // make sure bottom nav is hidden
+  React.useEffect(() => {
+    if (!store.shell.minimalShellMode) {
+      store.shell.setMinimalShellMode(true)
+    }
+  }, [store.shell.minimalShellMode, store])
+
+  const next = () => {
+    const nextScreenName = store.onboarding.next('Welcome')
+    if (nextScreenName) {
+      navigation.navigate(nextScreenName)
+    }
+  }
+
+  const skip = () => {
+    store.onboarding.skip()
+    navigation.navigate('Home')
+  }
+
+  return <Welcome next={next} skip={skip} />
+})