From 7d7431d14e52d94cce51941013c8a5fe5665adb1 Mon Sep 17 00:00:00 2001 From: dan Date: Sat, 7 Sep 2024 17:07:30 +0200 Subject: [PATCH] Set fixed_bottom_bar to true (#5203) --- src/lib/statsig/gates.ts | 1 - src/view/com/util/MainScrollProvider.tsx | 19 ++----------- src/view/screens/Home.tsx | 34 ++---------------------- 3 files changed, 4 insertions(+), 50 deletions(-) diff --git a/src/lib/statsig/gates.ts b/src/lib/statsig/gates.ts index be40548a..0c44b419 100644 --- a/src/lib/statsig/gates.ts +++ b/src/lib/statsig/gates.ts @@ -1,7 +1,6 @@ export type Gate = // Keep this alphabetic please. | 'debug_show_feedcontext' - | 'fixed_bottom_bar' | 'onboarding_minimum_interests' | 'suggested_feeds_interstitial' | 'show_follow_suggestions_in_profile' diff --git a/src/view/com/util/MainScrollProvider.tsx b/src/view/com/util/MainScrollProvider.tsx index 3163d854..c87ee209 100644 --- a/src/view/com/util/MainScrollProvider.tsx +++ b/src/view/com/util/MainScrollProvider.tsx @@ -9,7 +9,6 @@ import { import EventEmitter from 'eventemitter3' import {ScrollProvider} from '#/lib/ScrollContext' -import {useGate} from '#/lib/statsig/statsig' import {useMinimalShellMode} from '#/state/shell' import {useShellLayout} from '#/state/shell/shell-layout' import {isNative, isWeb} from 'platform/detection' @@ -23,12 +22,10 @@ function clamp(num: number, min: number, max: number) { export function MainScrollProvider({children}: {children: React.ReactNode}) { const {headerHeight} = useShellLayout() - const {headerMode, footerMode} = useMinimalShellMode() + const {headerMode} = useMinimalShellMode() const startDragOffset = useSharedValue(null) const startMode = useSharedValue(null) const didJustRestoreScroll = useSharedValue(false) - const gate = useGate() - const isFixedBottomBar = gate('fixed_bottom_bar') const setMode = React.useCallback( (v: boolean) => { @@ -37,14 +34,8 @@ export function MainScrollProvider({children}: {children: React.ReactNode}) { headerMode.value = withSpring(v ? 1 : 0, { overshootClamping: true, }) - if (!isFixedBottomBar) { - cancelAnimation(footerMode) - footerMode.value = withSpring(v ? 1 : 0, { - overshootClamping: true, - }) - } }, - [headerMode, footerMode, isFixedBottomBar], + [headerMode], ) useEffect(() => { @@ -147,10 +138,6 @@ export function MainScrollProvider({children}: {children: React.ReactNode}) { // Cancel any any existing animation cancelAnimation(headerMode) headerMode.value = newValue - if (!isFixedBottomBar) { - cancelAnimation(footerMode) - footerMode.value = newValue - } } } else { if (didJustRestoreScroll.value) { @@ -173,12 +160,10 @@ export function MainScrollProvider({children}: {children: React.ReactNode}) { [ headerHeight, headerMode, - footerMode, setMode, startDragOffset, startMode, didJustRestoreScroll, - isFixedBottomBar, ], ) diff --git a/src/view/screens/Home.tsx b/src/view/screens/Home.tsx index fb487ad6..c790a815 100644 --- a/src/view/screens/Home.tsx +++ b/src/view/screens/Home.tsx @@ -1,24 +1,18 @@ import React from 'react' -import {ActivityIndicator, AppState, StyleSheet, View} from 'react-native' +import {ActivityIndicator, StyleSheet, View} from 'react-native' import {useFocusEffect} from '@react-navigation/native' import {PROD_DEFAULT_FEED} from '#/lib/constants' import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' import {useSetTitle} from '#/lib/hooks/useSetTitle' -import {useWebMediaQueries} from '#/lib/hooks/useWebMediaQueries' import {logEvent, LogEvents} from '#/lib/statsig/statsig' -import {useGate} from '#/lib/statsig/statsig' import {emitSoftReset} from '#/state/events' import {SavedFeedSourceInfo, usePinnedFeedsInfos} from '#/state/queries/feed' import {FeedParams} from '#/state/queries/post-feed' import {usePreferencesQuery} from '#/state/queries/preferences' import {UsePreferencesQueryResponse} from '#/state/queries/preferences/types' import {useSession} from '#/state/session' -import { - useMinimalShellMode, - useSetDrawerSwipeDisabled, - useSetMinimalShellMode, -} from '#/state/shell' +import {useSetDrawerSwipeDisabled, useSetMinimalShellMode} from '#/state/shell' import {useSelectedFeed, useSetSelectedFeed} from '#/state/shell/selected-feed' import {useOTAUpdates} from 'lib/hooks/useOTAUpdates' import {useRequestNotificationsPermission} from 'lib/notifications/notifications' @@ -87,7 +81,6 @@ function HomeScreenReady({ const selectedIndex = Math.max(0, maybeFoundIndex) const selectedFeed = allFeeds[selectedIndex] const requestNotificationsPermission = useRequestNotificationsPermission() - const gate = useGate() useSetTitle(pinnedFeedInfos[selectedIndex]?.displayName) useOTAUpdates() @@ -134,29 +127,6 @@ function HomeScreenReady({ }), ) - const {footerMode} = useMinimalShellMode() - const {isMobile} = useWebMediaQueries() - useFocusEffect( - React.useCallback(() => { - if (gate('fixed_bottom_bar')) { - // Unnecessary because it's always there. - return - } - const listener = AppState.addEventListener('change', nextAppState => { - if (nextAppState === 'active') { - if (isMobile && footerMode.value === 1) { - // Reveal the bottom bar so you don't miss notifications or messages. - // TODO: Experiment with only doing it when unread > 0. - setMinimalShellMode(false) - } - } - }) - return () => { - listener.remove() - } - }, [setMinimalShellMode, footerMode, isMobile, gate]), - ) - const onPageSelected = React.useCallback( (index: number) => { setMinimalShellMode(false)