diff options
Diffstat (limited to 'src/view/screens')
-rw-r--r-- | src/view/screens/Home.tsx | 10 | ||||
-rw-r--r-- | src/view/screens/onboarding/RecommendedFeeds.tsx | 20 | ||||
-rw-r--r-- | src/view/screens/onboarding/Welcome.tsx | 32 |
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} /> +}) |