diff --git a/packages/app/src/cores/haptics/haptics.core.js b/packages/app/src/cores/haptics/haptics.core.js index 9f40d70d..b21b50f5 100644 --- a/packages/app/src/cores/haptics/haptics.core.js +++ b/packages/app/src/cores/haptics/haptics.core.js @@ -1,4 +1,5 @@ import Core from "evite/src/core" +import { Haptics } from "@capacitor/haptics" const vibrationPatterns = { light: [10], @@ -19,6 +20,10 @@ export default class HapticsCore extends Core { } async onInitialize() { + if (window.navigator.userAgent === "capacitor") { + navigator.vibrate = this.nativeVibrate + } + document.addEventListener("click", this.handleClickEvent) } @@ -27,6 +32,18 @@ export default class HapticsCore extends Core { vibrate: this.vibrate.bind(this), } + nativeVibrate = (pattern) => { + if (!Array.isArray(pattern)) { + pattern = [pattern] + } + + for (let i = 0; i < pattern.length; i++) { + Haptics.vibrate({ + duration: pattern[i], + }) + } + } + handleClickEvent = (event) => { const button = event.target.closest("button") || event.target.closest(".ant-btn")