about summary refs log tree commit diff
path: root/src/view/com/post-thread/PostThreadComposePrompt.tsx
diff options
context:
space:
mode:
authorSamuel Newman <mozzius@protonmail.com>2024-10-28 21:02:38 +0200
committerGitHub <noreply@github.com>2024-10-28 21:02:38 +0200
commit5bce043e1ebad182b06f63daab8b7e397771578e (patch)
treebb50c03ff6af319a0a1e796205b49caaaf985a24 /src/view/com/post-thread/PostThreadComposePrompt.tsx
parent2e3844c7b428d6479246f4d51993679f0e5cb33f (diff)
downloadvoidsky-5bce043e1ebad182b06f63daab8b7e397771578e.tar.zst
FAB - delay followup haptic (#5974)
Diffstat (limited to 'src/view/com/post-thread/PostThreadComposePrompt.tsx')
-rw-r--r--src/view/com/post-thread/PostThreadComposePrompt.tsx26
1 files changed, 11 insertions, 15 deletions
diff --git a/src/view/com/post-thread/PostThreadComposePrompt.tsx b/src/view/com/post-thread/PostThreadComposePrompt.tsx
index c5582922a..7af0be999 100644
--- a/src/view/com/post-thread/PostThreadComposePrompt.tsx
+++ b/src/view/com/post-thread/PostThreadComposePrompt.tsx
@@ -5,11 +5,10 @@ import {useLingui} from '@lingui/react'
 
 import {PressableScale} from '#/lib/custom-animations/PressableScale'
 import {useHaptics} from '#/lib/haptics'
-import {useHapticsDisabled} from '#/state/preferences'
 import {useProfileQuery} from '#/state/queries/profile'
 import {useSession} from '#/state/session'
 import {UserAvatar} from '#/view/com/util/UserAvatar'
-import {atoms as a, useBreakpoints, useTheme} from '#/alf'
+import {atoms as a, native, useBreakpoints, useTheme} from '#/alf'
 import {useInteractionState} from '#/components/hooks/useInteractionState'
 import {Text} from '#/components/Typography'
 
@@ -23,24 +22,13 @@ export function PostThreadComposePrompt({
   const {_} = useLingui()
   const {gtMobile} = useBreakpoints()
   const t = useTheme()
-  const playHaptics = useHaptics()
-  const isHapticsDisabled = useHapticsDisabled()
+  const playHaptic = useHaptics()
   const {
     state: hovered,
     onIn: onHoverIn,
     onOut: onHoverOut,
   } = useInteractionState()
 
-  const onPress = () => {
-    playHaptics('Light')
-    setTimeout(
-      () => {
-        onPressCompose()
-      },
-      isHapticsDisabled ? 0 : 75,
-    )
-  }
-
   return (
     <PressableScale
       accessibilityRole="button"
@@ -53,7 +41,15 @@ export function PostThreadComposePrompt({
         t.atoms.border_contrast_low,
         t.atoms.bg,
       ]}
-      onPress={onPress}
+      onPressIn={() => playHaptic('Light')}
+      onPress={() => {
+        onPressCompose()
+        setTimeout(() => playHaptic('Medium'), 200)
+      }}
+      onLongPress={native(() => {
+        onPressCompose()
+        setTimeout(() => playHaptic('Heavy'), 200)
+      })}
       onHoverIn={onHoverIn}
       onHoverOut={onHoverOut}>
       <View