diff options
author | dan <dan.abramov@gmail.com> | 2024-12-03 01:29:45 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-03 01:29:45 +0000 |
commit | cd811114ef0fc1164b8909e3debda792cd2a659c (patch) | |
tree | c866398bb1fec935c3d61305a0530d220fcbad1d /src/view/com/home/HomeHeader.tsx | |
parent | 5a313c2d10b112458830b3bfc708031f6f8726a0 (diff) | |
download | voidsky-cd811114ef0fc1164b8909e3debda792cd2a659c.tar.zst |
[Nicer Tabs] New native pager (#6868)
* Remove tab bar autoscroll This will be replaced by a different mechanism. * Track pager drag gesture in a worklet * Track pager state change in a worklet * Track offset relative to current page * Sync scroll to swipe * Extract TabBarItem * Sync scroll to swipe properly * Implement all interactions * Clarify more hacks * Simplify the implementation I was trying to be too smart and this was causing the current page event to lag behind if you continuously drag. Better to let the library do its job. * Interpolate the indicator * Fix an infinite swipe loop * Add TODO * Animate header color * Respect initial page * Keep layouts in a shared value * Fix profile and types * Fast path for initial styles * Scroll to initial * Factor out a helper * Fix positioning * Scroll into view on tap if needed * Divide free space proportionally * Scroll into view more aggressively * Fix corner case * Ignore spurious event on iOS * Simplify the condition Due to RN onLayout event ordering, we know that by now we'll have container and content sizes already. * Change boolean state to enum * Better syncing heuristic * Rm extra return
Diffstat (limited to 'src/view/com/home/HomeHeader.tsx')
-rw-r--r-- | src/view/com/home/HomeHeader.tsx | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/src/view/com/home/HomeHeader.tsx b/src/view/com/home/HomeHeader.tsx index 31c713563..0ec9ac753 100644 --- a/src/view/com/home/HomeHeader.tsx +++ b/src/view/com/home/HomeHeader.tsx @@ -1,7 +1,6 @@ import React from 'react' import {useNavigation} from '@react-navigation/native' -import {usePalette} from '#/lib/hooks/usePalette' import {NavigationProp} from '#/lib/routes/types' import {FeedSourceInfo} from '#/state/queries/feed' import {useSession} from '#/state/session' @@ -19,7 +18,6 @@ export function HomeHeader( const {feeds} = props const {hasSession} = useSession() const navigation = useNavigation<NavigationProp>() - const pal = usePalette('default') const hasPinnedCustom = React.useMemo<boolean>(() => { if (!hasSession) return false @@ -61,7 +59,8 @@ export function HomeHeader( onSelect={onSelect} testID={props.testID} items={items} - indicatorColor={pal.colors.link} + dragProgress={props.dragProgress} + dragState={props.dragState} /> </HomeHeaderLayout> ) |