From 59a0f4968600d437cdaea8f193a634a3c76c5293 Mon Sep 17 00:00:00 2001 From: Bartosz Grajdek Date: Tue, 5 Sep 2023 15:15:07 +0200 Subject: [PATCH 1/2] [TS migration] Migrate 'HapticFeedback' lib to TypeScript --- src/libs/HapticFeedback/index.js | 9 --------- .../{index.native.js => index.native.ts} | 17 +++++++++-------- src/libs/HapticFeedback/index.ts | 11 +++++++++++ src/libs/HapticFeedback/types.ts | 6 ++++++ 4 files changed, 26 insertions(+), 17 deletions(-) delete mode 100644 src/libs/HapticFeedback/index.js rename src/libs/HapticFeedback/{index.native.js => index.native.ts} (64%) create mode 100644 src/libs/HapticFeedback/index.ts create mode 100644 src/libs/HapticFeedback/types.ts diff --git a/src/libs/HapticFeedback/index.js b/src/libs/HapticFeedback/index.js deleted file mode 100644 index cef9f994ddaf..000000000000 --- a/src/libs/HapticFeedback/index.js +++ /dev/null @@ -1,9 +0,0 @@ -/** - * Web does not support Haptic feedback - */ -export default { - press: () => {}, - longPress: () => {}, - success: () => {}, - error: () => {}, -}; diff --git a/src/libs/HapticFeedback/index.native.js b/src/libs/HapticFeedback/index.native.ts similarity index 64% rename from src/libs/HapticFeedback/index.native.js rename to src/libs/HapticFeedback/index.native.ts index bc57c74d8d04..f1d7c80aa63d 100644 --- a/src/libs/HapticFeedback/index.native.js +++ b/src/libs/HapticFeedback/index.native.ts @@ -1,28 +1,29 @@ import ReactNativeHapticFeedback from 'react-native-haptic-feedback'; +import {HapticFeedbackError, HapticFeedbackLongPress, HapticFeedbackPress, HapticFeedbackSuccess} from './types'; -function press() { +const press: HapticFeedbackPress = () => { ReactNativeHapticFeedback.trigger('impactLight', { enableVibrateFallback: true, }); -} +}; -function longPress() { +const longPress: HapticFeedbackLongPress = () => { ReactNativeHapticFeedback.trigger('impactHeavy', { enableVibrateFallback: true, }); -} +}; -function success() { +const success: HapticFeedbackSuccess = () => { ReactNativeHapticFeedback.trigger('notificationSuccess', { enableVibrateFallback: true, }); -} +}; -function error() { +const error: HapticFeedbackError = () => { ReactNativeHapticFeedback.trigger('notificationError', { enableVibrateFallback: true, }); -} +}; export default { press, diff --git a/src/libs/HapticFeedback/index.ts b/src/libs/HapticFeedback/index.ts new file mode 100644 index 000000000000..ce4b5ec1917b --- /dev/null +++ b/src/libs/HapticFeedback/index.ts @@ -0,0 +1,11 @@ +import {HapticFeedbackError, HapticFeedbackLongPress, HapticFeedbackPress, HapticFeedbackSuccess} from './types'; + +/** + * Web does not support Haptic feedback + */ +const press: HapticFeedbackPress = () => {}; +const longPress: HapticFeedbackLongPress = () => {}; +const success: HapticFeedbackSuccess = () => {}; +const error: HapticFeedbackError = () => {}; + +export default {press, longPress, success, error}; diff --git a/src/libs/HapticFeedback/types.ts b/src/libs/HapticFeedback/types.ts new file mode 100644 index 000000000000..39d2b36bef21 --- /dev/null +++ b/src/libs/HapticFeedback/types.ts @@ -0,0 +1,6 @@ +type HapticFeedbackPress = () => void; +type HapticFeedbackLongPress = () => void; +type HapticFeedbackSuccess = () => void; +type HapticFeedbackError = () => void; + +export type {HapticFeedbackPress, HapticFeedbackLongPress, HapticFeedbackSuccess, HapticFeedbackError}; From 4df3b60975627fa61e360be05994d18b3803510a Mon Sep 17 00:00:00 2001 From: Bartosz Grajdek Date: Mon, 11 Sep 2023 14:04:26 +0200 Subject: [PATCH 2/2] Merge types into a single one --- src/libs/HapticFeedback/index.native.ts | 52 +++++++++++-------------- src/libs/HapticFeedback/index.ts | 14 ++++--- src/libs/HapticFeedback/types.ts | 12 +++--- 3 files changed, 38 insertions(+), 40 deletions(-) diff --git a/src/libs/HapticFeedback/index.native.ts b/src/libs/HapticFeedback/index.native.ts index f1d7c80aa63d..4c3605cc27ef 100644 --- a/src/libs/HapticFeedback/index.native.ts +++ b/src/libs/HapticFeedback/index.native.ts @@ -1,33 +1,27 @@ import ReactNativeHapticFeedback from 'react-native-haptic-feedback'; -import {HapticFeedbackError, HapticFeedbackLongPress, HapticFeedbackPress, HapticFeedbackSuccess} from './types'; +import HapticFeedback from './types'; -const press: HapticFeedbackPress = () => { - ReactNativeHapticFeedback.trigger('impactLight', { - enableVibrateFallback: true, - }); +const hapticFeedback: HapticFeedback = { + press: () => { + ReactNativeHapticFeedback.trigger('impactLight', { + enableVibrateFallback: true, + }); + }, + longPress: () => { + ReactNativeHapticFeedback.trigger('impactHeavy', { + enableVibrateFallback: true, + }); + }, + success: () => { + ReactNativeHapticFeedback.trigger('notificationSuccess', { + enableVibrateFallback: true, + }); + }, + error: () => { + ReactNativeHapticFeedback.trigger('notificationError', { + enableVibrateFallback: true, + }); + }, }; -const longPress: HapticFeedbackLongPress = () => { - ReactNativeHapticFeedback.trigger('impactHeavy', { - enableVibrateFallback: true, - }); -}; - -const success: HapticFeedbackSuccess = () => { - ReactNativeHapticFeedback.trigger('notificationSuccess', { - enableVibrateFallback: true, - }); -}; - -const error: HapticFeedbackError = () => { - ReactNativeHapticFeedback.trigger('notificationError', { - enableVibrateFallback: true, - }); -}; - -export default { - press, - longPress, - success, - error, -}; +export default hapticFeedback; diff --git a/src/libs/HapticFeedback/index.ts b/src/libs/HapticFeedback/index.ts index ce4b5ec1917b..3dd5b87f573b 100644 --- a/src/libs/HapticFeedback/index.ts +++ b/src/libs/HapticFeedback/index.ts @@ -1,11 +1,13 @@ -import {HapticFeedbackError, HapticFeedbackLongPress, HapticFeedbackPress, HapticFeedbackSuccess} from './types'; +import HapticFeedback from './types'; /** * Web does not support Haptic feedback */ -const press: HapticFeedbackPress = () => {}; -const longPress: HapticFeedbackLongPress = () => {}; -const success: HapticFeedbackSuccess = () => {}; -const error: HapticFeedbackError = () => {}; +const hapticFeedback: HapticFeedback = { + press: () => {}, + longPress: () => {}, + success: () => {}, + error: () => {}, +}; -export default {press, longPress, success, error}; +export default hapticFeedback; diff --git a/src/libs/HapticFeedback/types.ts b/src/libs/HapticFeedback/types.ts index 39d2b36bef21..3db056fad148 100644 --- a/src/libs/HapticFeedback/types.ts +++ b/src/libs/HapticFeedback/types.ts @@ -1,6 +1,8 @@ -type HapticFeedbackPress = () => void; -type HapticFeedbackLongPress = () => void; -type HapticFeedbackSuccess = () => void; -type HapticFeedbackError = () => void; +type HapticFeedback = { + press: () => void; + longPress: () => void; + success: () => void; + error: () => void; +}; -export type {HapticFeedbackPress, HapticFeedbackLongPress, HapticFeedbackSuccess, HapticFeedbackError}; +export default HapticFeedback;