From 468c4b8f5ae68f537f2844797472b4c3794b094b Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Fri, 8 Nov 2024 03:38:32 +0000 Subject: [PATCH] Improve chat performance (#6157) * fix worklet funcs on gestures * don't access .value in render --- src/components/dms/ActionsWrapper.tsx | 3 ++- src/screens/Messages/Conversation.tsx | 4 +--- src/screens/Messages/components/MessagesList.tsx | 10 +++++----- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/src/components/dms/ActionsWrapper.tsx b/src/components/dms/ActionsWrapper.tsx index 9b06bd0b20..b77516e7b7 100644 --- a/src/components/dms/ActionsWrapper.tsx +++ b/src/components/dms/ActionsWrapper.tsx @@ -53,9 +53,11 @@ export function ActionsWrapper({ .numberOfTaps(2) .hitSlop(HITSLOP_10) .onEnd(open) + .runOnJS(true) const pressAndHoldGesture = Gesture.LongPress() .onStart(() => { + 'worklet' scale.value = withTiming(1.05, {duration: 200}, finished => { if (!finished) return runOnJS(open)() @@ -65,7 +67,6 @@ export function ActionsWrapper({ .onTouchesUp(shrink) .onTouchesMove(shrink) .cancelsTouchesInView(false) - .runOnJS(true) const composedGestures = Gesture.Exclusive( doubleTapGesture, diff --git a/src/screens/Messages/Conversation.tsx b/src/screens/Messages/Conversation.tsx index 651915738a..e2e646a3d3 100644 --- a/src/screens/Messages/Conversation.tsx +++ b/src/screens/Messages/Conversation.tsx @@ -127,9 +127,7 @@ function Inner() { setHasScrolled={setHasScrolled} /> ) : ( - <> - - + )} {!readyToShow && ( layoutHeight.value) { convoState.fetchMessageHistory() } - }, [convoState, hasScrolled, layoutHeight.value]) + }, [convoState, hasScrolled, layoutHeight]) const onScroll = React.useCallback( (e: ReanimatedScrollEvent) => { @@ -374,7 +374,7 @@ export function MessagesList({ }, [ flatListRef, - keyboardIsOpening.value, + keyboardIsOpening, layoutScrollWithoutAnimation, layoutHeight, ],