diff options
author | Paul Frazee <pfrazee@gmail.com> | 2023-03-16 19:09:19 -0500 |
---|---|---|
committer | Paul Frazee <pfrazee@gmail.com> | 2023-03-16 19:09:19 -0500 |
commit | f01d43f9e8107160088296fe6b0a9bb753d61032 (patch) | |
tree | 6c66ce84063e7e54efdc9bf4af9c5e1955edb6cc /src/view/screens/Home.tsx | |
parent | c50a20d2147b9d6122768385ef00f4da783af12e (diff) | |
download | voidsky-f01d43f9e8107160088296fe6b0a9bb753d61032.tar.zst |
Get home screen's swipable pager working with the drawer
Diffstat (limited to 'src/view/screens/Home.tsx')
-rw-r--r-- | src/view/screens/Home.tsx | 61 |
1 files changed, 60 insertions, 1 deletions
diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx index adc73315c..49915cd04 100644 --- a/src/view/screens/Home.tsx +++ b/src/view/screens/Home.tsx @@ -1,5 +1,5 @@ import React from 'react' -import {FlatList, View} from 'react-native' +import {FlatList, StyleSheet, View, useWindowDimensions} from 'react-native' import {useFocusEffect, useIsFocused} from '@react-navigation/native' import {observer} from 'mobx-react-lite' import useAppState from 'react-native-appstate-hook' @@ -9,16 +9,74 @@ import {ViewHeader} from '../com/util/ViewHeader' import {Feed} from '../com/posts/Feed' import {LoadLatestBtn} from '../com/util/LoadLatestBtn' import {WelcomeBanner} from '../com/util/WelcomeBanner' +import {UserAvatar} from 'view/com/util/UserAvatar' import {FAB} from '../com/util/FAB' import {useStores} from 'state/index' +import {usePalette} from 'lib/hooks/usePalette' import {s} from 'lib/styles' import {useOnMainScroll} from 'lib/hooks/useOnMainScroll' import {useAnalytics} from 'lib/analytics' import {ComposeIcon2} from 'lib/icons' +import PagerView, {PagerViewOnPageSelectedEvent} from 'react-native-pager-view' +import {Text} from 'view/com/util/text/Text' + const HEADER_HEIGHT = 42 type Props = NativeStackScreenProps<HomeTabNavigatorParams, 'Home'> +export const HomeScreen = withAuthRequired((_opts: Props) => { + const store = useStores() + const onPageSelected = React.useCallback( + (e: PagerViewOnPageSelectedEvent) => { + store.shell.setIsDrawerSwipeDisabled(e.nativeEvent.position > 0) + }, + [store], + ) + + useFocusEffect( + React.useCallback(() => { + return () => { + store.shell.setIsDrawerSwipeDisabled(false) + } + }, [store]), + ) + + return ( + <PagerView + style={{height: '100%'}} + initialPage={0} + onPageSelected={onPageSelected}> + <View key="1"> + <MyPage>First page</MyPage> + </View> + <View key="2"> + <MyPage>Second page</MyPage> + </View> + </PagerView> + ) +}) +function MyPage({children}) { + return ( + <View + style={{ + flex: 1, + justifyContent: 'center', + alignItems: 'center', + borderWidth: 1, + backgroundColor: 'white', + }}> + <Text>{children}</Text> + </View> + ) +} + +const styles = StyleSheet.create({ + tabBar: { + flexDirection: 'row', + }, +}) +/* +type Props = NativeStackScreenProps<HomeTabNavigatorParams, 'Home'> export const HomeScreen = withAuthRequired( observer(function Home(_opts: Props) { const store = useStores() @@ -113,3 +171,4 @@ export const HomeScreen = withAuthRequired( ) }), ) +*/ |