From 46103b661eeac949e72ca00d2a3cfc25a2907f40 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Wed, 8 Oct 2025 17:09:22 +0300 Subject: [PATCH] fix hoisting errors --- src/components/InterestTabs.tsx | 20 ++++++++++---------- src/view/com/pager/Pager.web.tsx | 14 +++++++------- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/src/components/InterestTabs.tsx b/src/components/InterestTabs.tsx index aec4217681..22ea997c5f 100644 --- a/src/components/InterestTabs.tsx +++ b/src/components/InterestTabs.tsx @@ -53,6 +53,16 @@ export function InterestTabs({ const pendingTabOffsets = useRef<{x: number; width: number}[]>([]) const [tabOffsets, setTabOffsets] = useState<{x: number; width: number}[]>([]) + function scrollIntoViewIfNeeded(index: number) { + const btnLayout = tabOffsets[index] + if (!btnLayout) return + listRef.current?.scrollTo({ + // centered + x: btnLayout.x - (totalWidth / 2 - btnLayout.width / 2), + animated: true, + }) + } + const onInitialLayout = useNonReactiveCallback(() => { const index = interests.indexOf(selectedInterest) scrollIntoViewIfNeeded(index) @@ -64,16 +74,6 @@ export function InterestTabs({ } }, [tabOffsets, onInitialLayout]) - function scrollIntoViewIfNeeded(index: number) { - const btnLayout = tabOffsets[index] - if (!btnLayout) return - listRef.current?.scrollTo({ - // centered - x: btnLayout.x - (totalWidth / 2 - btnLayout.width / 2), - animated: true, - }) - } - function handleSelectTab(index: number) { const tab = interests[index] onSelectTab(tab) diff --git a/src/view/com/pager/Pager.web.tsx b/src/view/com/pager/Pager.web.tsx index ebe5432a33..106b758499 100644 --- a/src/view/com/pager/Pager.web.tsx +++ b/src/view/com/pager/Pager.web.tsx @@ -41,12 +41,6 @@ export function Pager({ const scrollYs = useRef>([]) const anchorRef = useRef(null) - useImperativeHandle(ref, () => ({ - setPage: (index: number) => { - onTabBarSelect(index) - }, - })) - const onTabBarSelect = useCallback( (index: number) => { const scrollY = window.scrollY @@ -80,12 +74,18 @@ export function Pager({ [selectedPage, setSelectedPage, onPageSelected], ) + useImperativeHandle(ref, () => ({ + setPage: (index: number) => { + onTabBarSelect(index) + }, + })) + return ( {renderTabBar({ selectedPage, tabBarAnchor: , - onSelect: e => onTabBarSelect(e), + onSelect: onTabBarSelect, })} {Children.map(children, (child, i) => (