feat(vue): add hook to access Ionic Vue router (#22072)

This commit is contained in:
Liam DeBeasi
2020-09-11 11:33:41 -04:00
committed by GitHub
parent 8227844cbc
commit 3d34b68fbd
2 changed files with 14 additions and 1 deletions

View File

@ -1,7 +1,12 @@
import { BackButtonEvent } from '@ionic/core';
import { inject } from 'vue';
type Handler = (processNextHandler: () => void) => Promise<any> | void | null;
export interface IonRouter {
canGoBack: (deep: number) => boolean;
}
export const useHardwareBackButton = (priority: number, handler: Handler) => {
const callback = (ev: BackButtonEvent) => ev.detail.register(priority, handler);
const unregister = () => document.removeEventListener('ionBackButton', callback);
@ -10,3 +15,11 @@ export const useHardwareBackButton = (priority: number, handler: Handler) => {
return { unregister };
}
export const useIonRouter = (): IonRouter => {
const { canGoBack } = inject('navManager') as any;
return {
canGoBack
} as IonRouter
}

View File

@ -11,7 +11,7 @@ export { IonTabButton } from './components/IonTabButton';
export { IonTabs } from './components/IonTabs';
export { IonTabBar } from './components/IonTabBar';
export { useHardwareBackButton } from './hardware-back-button';
export { IonRouter, useHardwareBackButton, useIonRouter } from './hooks';
export {
// Overlay Controllers