Fix stutter when swiping feeds on Android (#6765)
This commit is contained in:
@@ -1,10 +1,5 @@
|
||||
import React from 'react'
|
||||
import {
|
||||
cancelAnimation,
|
||||
SharedValue,
|
||||
useSharedValue,
|
||||
withSpring,
|
||||
} from 'react-native-reanimated'
|
||||
import {SharedValue, useSharedValue, withSpring} from 'react-native-reanimated'
|
||||
|
||||
type StateContext = {
|
||||
headerMode: SharedValue<number>
|
||||
@@ -42,14 +37,11 @@ export function Provider({children}: React.PropsWithChildren<{}>) {
|
||||
const setMode = React.useCallback(
|
||||
(v: boolean) => {
|
||||
'worklet'
|
||||
// Cancel any existing animation
|
||||
cancelAnimation(headerMode)
|
||||
headerMode.set(() =>
|
||||
withSpring(v ? 1 : 0, {
|
||||
overshootClamping: true,
|
||||
}),
|
||||
)
|
||||
cancelAnimation(footerMode)
|
||||
footerMode.set(() =>
|
||||
withSpring(v ? 1 : 0, {
|
||||
overshootClamping: true,
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import React, {useCallback, useEffect} from 'react'
|
||||
import {NativeScrollEvent} from 'react-native'
|
||||
import {
|
||||
cancelAnimation,
|
||||
interpolate,
|
||||
makeMutable,
|
||||
useSharedValue,
|
||||
@@ -43,7 +42,6 @@ export function MainScrollProvider({children}: {children: React.ReactNode}) {
|
||||
const setMode = React.useCallback(
|
||||
(v: boolean) => {
|
||||
'worklet'
|
||||
cancelAnimation(headerMode)
|
||||
headerMode.set(v ? V1.get() : V0.get())
|
||||
},
|
||||
[headerMode],
|
||||
@@ -149,8 +147,6 @@ export function MainScrollProvider({children}: {children: React.ReactNode}) {
|
||||
const newValue = clamp(startModeValue + dProgress, 0, 1)
|
||||
if (newValue !== headerMode.get()) {
|
||||
// Manually adjust the value. This won't be (and shouldn't be) animated.
|
||||
// Cancel any any existing animation
|
||||
cancelAnimation(headerMode)
|
||||
headerMode.set(newValue)
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user