Reduce Reanimated serialization traffic (#6219)

This commit is contained in:
dan
2024-11-12 17:19:52 +00:00
committed by GitHub
parent d7841037f1
commit b2e11d3171
+14 -3
View File
@@ -3,6 +3,7 @@ import {NativeScrollEvent} from 'react-native'
import {
cancelAnimation,
interpolate,
makeMutable,
useSharedValue,
withSpring,
} from 'react-native-reanimated'
@@ -20,6 +21,18 @@ function clamp(num: number, min: number, max: number) {
return Math.min(Math.max(num, min), max)
}
const V0 = makeMutable(
withSpring(0, {
overshootClamping: true,
}),
)
const V1 = makeMutable(
withSpring(1, {
overshootClamping: true,
}),
)
export function MainScrollProvider({children}: {children: React.ReactNode}) {
const {headerHeight} = useShellLayout()
const {headerMode} = useMinimalShellMode()
@@ -31,9 +44,7 @@ export function MainScrollProvider({children}: {children: React.ReactNode}) {
(v: boolean) => {
'worklet'
cancelAnimation(headerMode)
headerMode.value = withSpring(v ? 1 : 0, {
overshootClamping: true,
})
headerMode.value = v ? V1.value : V0.value
},
[headerMode],
)