From fb11daee0b1c43f94e8ef271ba39316b3aa50318 Mon Sep 17 00:00:00 2001 From: khuddite Date: Sun, 10 Nov 2024 21:54:26 -0500 Subject: [PATCH 1/2] increase copied animation lingering time for reduced motion --- src/screens/Settings/components/CopyButton.tsx | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/screens/Settings/components/CopyButton.tsx b/src/screens/Settings/components/CopyButton.tsx index eb538f5dee..d63560610a 100644 --- a/src/screens/Settings/components/CopyButton.tsx +++ b/src/screens/Settings/components/CopyButton.tsx @@ -1,6 +1,10 @@ import React, {useCallback, useEffect, useState} from 'react' import {GestureResponderEvent, View} from 'react-native' -import Animated, {FadeOutUp, ZoomIn} from 'react-native-reanimated' +import Animated, { + FadeOutUp, + useReducedMotion, + ZoomIn, +} from 'react-native-reanimated' import * as Clipboard from 'expo-clipboard' import {Trans} from '@lingui/macro' @@ -16,13 +20,17 @@ export function CopyButton({ }: ButtonProps & {value: string}) { const [hasBeenCopied, setHasBeenCopied] = useState(false) const t = useTheme() + const isReducedMotionEnabled = useReducedMotion() useEffect(() => { if (hasBeenCopied) { - const timeout = setTimeout(() => setHasBeenCopied(false), 100) + const timeout = setTimeout( + () => setHasBeenCopied(false), + !isReducedMotionEnabled ? 100 : 2000, + ) return () => clearTimeout(timeout) } - }, [hasBeenCopied]) + }, [hasBeenCopied, isReducedMotionEnabled]) const onPress = useCallback( (evt: GestureResponderEvent) => { From 72e64777b630854a1febcb696156dd560fc1acc1 Mon Sep 17 00:00:00 2001 From: dan Date: Mon, 11 Nov 2024 10:40:12 +0000 Subject: [PATCH 2/2] flip the condition --- src/screens/Settings/components/CopyButton.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/screens/Settings/components/CopyButton.tsx b/src/screens/Settings/components/CopyButton.tsx index d63560610a..8c6cdfa8ad 100644 --- a/src/screens/Settings/components/CopyButton.tsx +++ b/src/screens/Settings/components/CopyButton.tsx @@ -26,7 +26,7 @@ export function CopyButton({ if (hasBeenCopied) { const timeout = setTimeout( () => setHasBeenCopied(false), - !isReducedMotionEnabled ? 100 : 2000, + isReducedMotionEnabled ? 2000 : 100, ) return () => clearTimeout(timeout) }