diff options
Diffstat (limited to 'src/lib')
-rw-r--r-- | src/lib/haptics.ts | 29 |
1 files changed, 18 insertions, 11 deletions
diff --git a/src/lib/haptics.ts b/src/lib/haptics.ts index 516940c1c..b22d69d70 100644 --- a/src/lib/haptics.ts +++ b/src/lib/haptics.ts @@ -1,28 +1,35 @@ +import { + impactAsync, + ImpactFeedbackStyle, + notificationAsync, + NotificationFeedbackType, + selectionAsync, +} from 'expo-haptics' + import {isIOS, isWeb} from 'platform/detection' -import ReactNativeHapticFeedback, { - HapticFeedbackTypes, -} from 'react-native-haptic-feedback' -const hapticImpact: HapticFeedbackTypes = isIOS ? 'impactMedium' : 'impactLight' // Users said the medium impact was too strong on Android; see APP-537s +const hapticImpact: ImpactFeedbackStyle = isIOS + ? ImpactFeedbackStyle.Medium + : ImpactFeedbackStyle.Light // Users said the medium impact was too strong on Android; see APP-537s export class Haptics { static default() { if (isWeb) { return } - ReactNativeHapticFeedback.trigger(hapticImpact) + impactAsync(hapticImpact) } - static impact(type: HapticFeedbackTypes = hapticImpact) { + static impact(type: ImpactFeedbackStyle = hapticImpact) { if (isWeb) { return } - ReactNativeHapticFeedback.trigger(type) + impactAsync(type) } static selection() { if (isWeb) { return } - ReactNativeHapticFeedback.trigger('selection') + selectionAsync() } static notification = (type: 'success' | 'warning' | 'error') => { if (isWeb) { @@ -30,11 +37,11 @@ export class Haptics { } switch (type) { case 'success': - return ReactNativeHapticFeedback.trigger('notificationSuccess') + return notificationAsync(NotificationFeedbackType.Success) case 'warning': - return ReactNativeHapticFeedback.trigger('notificationWarning') + return notificationAsync(NotificationFeedbackType.Warning) case 'error': - return ReactNativeHapticFeedback.trigger('notificationError') + return notificationAsync(NotificationFeedbackType.Error) } } } |