diff options
Diffstat (limited to 'src/lib/haptics.ts')
-rw-r--r-- | src/lib/haptics.ts | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/src/lib/haptics.ts b/src/lib/haptics.ts index 02940f793..390b76a0e 100644 --- a/src/lib/haptics.ts +++ b/src/lib/haptics.ts @@ -4,17 +4,21 @@ import {impactAsync, ImpactFeedbackStyle} from 'expo-haptics' import {isIOS, isWeb} from 'platform/detection' import {useHapticsDisabled} from 'state/preferences/disable-haptics' -const hapticImpact: ImpactFeedbackStyle = isIOS - ? ImpactFeedbackStyle.Medium - : ImpactFeedbackStyle.Light // Users said the medium impact was too strong on Android; see APP-537s - export function useHaptics() { const isHapticsDisabled = useHapticsDisabled() - return React.useCallback(() => { - if (isHapticsDisabled || isWeb) { - return - } - impactAsync(hapticImpact) - }, [isHapticsDisabled]) + return React.useCallback( + (strength: 'Light' | 'Medium' | 'Heavy' = 'Medium') => { + if (isHapticsDisabled || isWeb) { + return + } + + // Users said the medium impact was too strong on Android; see APP-537s + const style = isIOS + ? ImpactFeedbackStyle[strength] + : ImpactFeedbackStyle.Light + impactAsync(style) + }, + [isHapticsDisabled], + ) } |