diff options
Diffstat (limited to 'src/view/screens/Home.tsx')
-rw-r--r-- | src/view/screens/Home.tsx | 42 |
1 files changed, 19 insertions, 23 deletions
diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx index 60cda31db..e53d4a08e 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, View, useWindowDimensions} from 'react-native' import {useFocusEffect, useIsFocused} from '@react-navigation/native' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {FontAwesomeIconStyle} from '@fortawesome/react-native-fontawesome' @@ -26,9 +26,6 @@ import {useAnalytics} from 'lib/analytics/analytics' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {ComposeIcon2} from 'lib/icons' -const HEADER_OFFSET_MOBILE = 78 -const HEADER_OFFSET_TABLET = 50 -const HEADER_OFFSET_DESKTOP = 0 const POLL_FREQ = 30e3 // 30sec type Props = NativeStackScreenProps<HomeTabNavigatorParams, 'Home'> @@ -160,16 +157,10 @@ const FeedPage = observer(function FeedPageImpl({ }) { const store = useStores() const pal = usePalette('default') - const {isMobile, isTablet, isDesktop} = useWebMediaQueries() + const {isDesktop} = useWebMediaQueries() const [onMainScroll, isScrolledDown, resetMainScroll] = useOnMainScroll(store) const {screen, track} = useAnalytics() - const [headerOffset, setHeaderOffset] = React.useState( - isMobile - ? HEADER_OFFSET_MOBILE - : isTablet - ? HEADER_OFFSET_TABLET - : HEADER_OFFSET_DESKTOP, - ) + const headerOffset = useHeaderOffset() const scrollElRef = React.useRef<FlatList>(null) const {appState} = useAppState({ onForeground: () => doPoll(true), @@ -214,17 +205,6 @@ const FeedPage = observer(function FeedPageImpl({ } }, [isPageFocused, scrollToTop, feed]) - // listens for resize events - React.useEffect(() => { - setHeaderOffset( - isMobile - ? HEADER_OFFSET_MOBILE - : isTablet - ? HEADER_OFFSET_TABLET - : HEADER_OFFSET_DESKTOP, - ) - }, [isMobile, isTablet]) - // fires when page within screen is activated/deactivated // - check for latest React.useEffect(() => { @@ -301,6 +281,8 @@ const FeedPage = observer(function FeedPageImpl({ type="title-lg" href="/settings/home-feed" style={{fontWeight: 'bold'}} + accessibilityLabel="Feed Preferences" + accessibilityHint="" text={ <FontAwesomeIcon icon="sliders" @@ -347,3 +329,17 @@ const FeedPage = observer(function FeedPageImpl({ </View> ) }) + +function useHeaderOffset() { + const {isDesktop, isTablet} = useWebMediaQueries() + const {fontScale} = useWindowDimensions() + if (isDesktop) { + return 0 + } + if (isTablet) { + return 50 + } + // default text takes 44px, plus 34px of pad + // scale the 44px by the font scale + return 34 + 44 * fontScale +} |