diff --git a/packages/vue/src/hooks/back-button.ts b/packages/vue/src/hooks/back-button.ts index 79cb48c447e..9fc40e719d4 100644 --- a/packages/vue/src/hooks/back-button.ts +++ b/packages/vue/src/hooks/back-button.ts @@ -1,4 +1,5 @@ import type { BackButtonEvent } from "@ionic/core/components"; +import { onBeforeUnmount, getCurrentInstance } from 'vue' type Handler = (processNextHandler: () => void) => Promise | void | null; export interface UseBackButtonResult { @@ -15,6 +16,12 @@ export const useBackButton = ( document.removeEventListener("ionBackButton", callback); document.addEventListener("ionBackButton", callback); + + if (getCurrentInstance()){ + onBeforeUnmount(() => { + unregister() + }); + } return { unregister }; }; diff --git a/packages/vue/src/hooks/keyboard.ts b/packages/vue/src/hooks/keyboard.ts index 23fcb6443ca..fda4db594e1 100644 --- a/packages/vue/src/hooks/keyboard.ts +++ b/packages/vue/src/hooks/keyboard.ts @@ -1,5 +1,5 @@ import type { Ref } from "vue"; -import { ref } from "vue"; +import { ref, onBeforeUnmount, getCurrentInstance } from "vue"; export interface UseKeyboardResult { isOpen: Ref; @@ -33,6 +33,12 @@ export const useKeyboard = (): UseKeyboardResult => { window.addEventListener("ionKeyboardDidHide", hideCallback); } + if (getCurrentInstance()){ + onBeforeUnmount(() => { + unregister() + }); + } + return { isOpen, keyboardHeight,