Hide/show header and footer without re-renders, take two (#1849)
* Remove callsites using the state value * Remove unused code * Change shell mode without re-renders * Adjust "write your reply" for mode
This commit is contained in:
parent
bd531f2344
commit
82059b7ee1
7 changed files with 63 additions and 55 deletions
|
@ -25,7 +25,7 @@ export const FeedsTabBar = observer(function FeedsTabBarImpl(
|
|||
const setDrawerOpen = useSetDrawerOpen()
|
||||
const items = useHomeTabs(store.preferences.pinnedFeeds)
|
||||
const brandBlue = useColorSchemeStyle(s.brandBlue, s.blue3)
|
||||
const {minimalShellMode, headerMinimalShellTransform} = useMinimalShellMode()
|
||||
const {headerMinimalShellTransform} = useMinimalShellMode()
|
||||
|
||||
const onPressAvi = React.useCallback(() => {
|
||||
setDrawerOpen(true)
|
||||
|
@ -38,7 +38,6 @@ export const FeedsTabBar = observer(function FeedsTabBarImpl(
|
|||
pal.border,
|
||||
styles.tabBar,
|
||||
headerMinimalShellTransform,
|
||||
minimalShellMode && styles.disabled,
|
||||
]}>
|
||||
<View style={[pal.view, styles.topBar]}>
|
||||
<View style={[pal.view]}>
|
||||
|
@ -110,7 +109,4 @@ const styles = StyleSheet.create({
|
|||
title: {
|
||||
fontSize: 21,
|
||||
},
|
||||
disabled: {
|
||||
pointerEvents: 'none',
|
||||
},
|
||||
})
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import React, {useMemo} from 'react'
|
||||
import {InteractionManager, StyleSheet, View} from 'react-native'
|
||||
import Animated from 'react-native-reanimated'
|
||||
import {useFocusEffect} from '@react-navigation/native'
|
||||
import {observer} from 'mobx-react-lite'
|
||||
import {NativeStackScreenProps, CommonNavigatorParams} from 'lib/routes/types'
|
||||
|
@ -15,15 +16,14 @@ import {useSafeAreaInsets} from 'react-native-safe-area-context'
|
|||
import {clamp} from 'lodash'
|
||||
import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
|
||||
import {logger} from '#/logger'
|
||||
import {useMinimalShellMode, useSetMinimalShellMode} from '#/state/shell'
|
||||
|
||||
const SHELL_FOOTER_HEIGHT = 44
|
||||
import {useMinimalShellMode} from 'lib/hooks/useMinimalShellMode'
|
||||
import {useSetMinimalShellMode} from '#/state/shell'
|
||||
|
||||
type Props = NativeStackScreenProps<CommonNavigatorParams, 'PostThread'>
|
||||
export const PostThreadScreen = withAuthRequired(
|
||||
observer(function PostThreadScreenImpl({route}: Props) {
|
||||
const store = useStores()
|
||||
const minimalShellMode = useMinimalShellMode()
|
||||
const {fabMinimalShellTransform} = useMinimalShellMode()
|
||||
const setMinimalShellMode = useSetMinimalShellMode()
|
||||
const safeAreaInsets = useSafeAreaInsets()
|
||||
const {name, rkey} = route.params
|
||||
|
@ -83,17 +83,17 @@ export const PostThreadScreen = withAuthRequired(
|
|||
treeView={!!store.preferences.thread.lab_treeViewEnabled}
|
||||
/>
|
||||
</View>
|
||||
{isMobile && !minimalShellMode && (
|
||||
<View
|
||||
{isMobile && (
|
||||
<Animated.View
|
||||
style={[
|
||||
styles.prompt,
|
||||
fabMinimalShellTransform,
|
||||
{
|
||||
bottom:
|
||||
SHELL_FOOTER_HEIGHT + clamp(safeAreaInsets.bottom, 15, 30),
|
||||
bottom: clamp(safeAreaInsets.bottom, 15, 30),
|
||||
},
|
||||
]}>
|
||||
<ComposePrompt onPressCompose={onPressReply} />
|
||||
</View>
|
||||
</Animated.View>
|
||||
)}
|
||||
</View>
|
||||
)
|
||||
|
|
|
@ -39,7 +39,7 @@ export const BottomBar = observer(function BottomBarImpl({
|
|||
const {isAtHome, isAtSearch, isAtFeeds, isAtNotifications, isAtMyProfile} =
|
||||
useNavigationTabState()
|
||||
|
||||
const {minimalShellMode, footerMinimalShellTransform} = useMinimalShellMode()
|
||||
const {footerMinimalShellTransform} = useMinimalShellMode()
|
||||
const {notifications} = store.me
|
||||
|
||||
const onPressTab = React.useCallback(
|
||||
|
@ -85,7 +85,6 @@ export const BottomBar = observer(function BottomBarImpl({
|
|||
pal.border,
|
||||
{paddingBottom: clamp(safeAreaInsets.bottom, 15, 30)},
|
||||
footerMinimalShellTransform,
|
||||
minimalShellMode && styles.disabled,
|
||||
]}>
|
||||
<Btn
|
||||
testID="bottomBarHomeBtn"
|
||||
|
|
|
@ -65,7 +65,4 @@ export const styles = StyleSheet.create({
|
|||
borderWidth: 1,
|
||||
borderRadius: 100,
|
||||
},
|
||||
disabled: {
|
||||
pointerEvents: 'none',
|
||||
},
|
||||
})
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue