From 3e318cc890050b6895385ea6082f443223a77a9f Mon Sep 17 00:00:00 2001 From: Vitalii Yehorov Date: Sun, 21 May 2023 10:52:01 +0200 Subject: [PATCH] feat: added haptic --- ...aptics-npm-12.2.1-6d8fdfb87b-b64d9eb3ad.zip | Bin 0 -> 22204 bytes app/game/index.tsx | 17 ++++++++++++----- package.json | 1 + .../actions/app-root-select-value.action.ts | 5 +++++ yarn.lock | 10 ++++++++++ 5 files changed, 28 insertions(+), 5 deletions(-) create mode 100644 .yarn/cache/expo-haptics-npm-12.2.1-6d8fdfb87b-b64d9eb3ad.zip diff --git a/.yarn/cache/expo-haptics-npm-12.2.1-6d8fdfb87b-b64d9eb3ad.zip b/.yarn/cache/expo-haptics-npm-12.2.1-6d8fdfb87b-b64d9eb3ad.zip new file mode 100644 index 0000000000000000000000000000000000000000..579d040a431b554e20ba51d0eb06865cd19133e9 GIT binary patch literal 22204 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 ao3t1hAW!hM(1YQ@Eb@Z~-F#pF@BaY { + const handleWin = async () => { if (!hasBlankCells(field)[0]) { + await Haptics.impactAsync(ImpactFeedbackStyle.Heavy); router.push('winner'); } - }, [field]); - useEffect(() => { + }; + const handleLose = async () => { if (mistakes >= MaxMistakesConstant) { + await Haptics.impactAsync(ImpactFeedbackStyle.Heavy); router.push('loser'); } - }, [mistakes]); + }; + + useEffect(() => void handleWin(), [field]); + useEffect(() => void handleLose(), [mistakes]); const handleExit = () => { Alert.alert('Stop current run?', 'All progress will be lost', [ diff --git a/package.json b/package.json index a8b2515..24f71ae 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "expo": "~48.0.15", "expo-constants": "~14.2.1", "expo-font": "~11.1.1", + "expo-haptics": "~12.2.1", "expo-linking": "~4.0.1", "expo-router": "^1.5.3", "expo-splash-screen": "~0.18.2", diff --git a/store/app-root/actions/app-root-select-value.action.ts b/store/app-root/actions/app-root-select-value.action.ts index bee29db..9ab443c 100644 --- a/store/app-root/actions/app-root-select-value.action.ts +++ b/store/app-root/actions/app-root-select-value.action.ts @@ -1,5 +1,6 @@ import { createAsyncThunk } from '@reduxjs/toolkit'; import { isDefined } from '@rnw-community/shared'; +import * as Haptics from 'expo-haptics'; import { BlankCellValueContant } from '../../../constants/blank-cell-value.contant'; import { isCorrectCell } from '../../../utils/field/is-correct-cell.util'; @@ -20,9 +21,13 @@ export const appRootSelectValueAction = createAsyncThunk