diff --git a/packages/vue/src/components/IonPage.ts b/packages/vue/src/components/IonPage.ts index 77162d22d3..4d3b8b5587 100644 --- a/packages/vue/src/components/IonPage.ts +++ b/packages/vue/src/components/IonPage.ts @@ -2,12 +2,16 @@ import { h, defineComponent } from 'vue'; export const IonPage = defineComponent({ name: 'IonPage', - setup(_, { attrs, slots }) { + props: { + isInOutlet: { type: Boolean, default: false } + }, + setup(props, { attrs, slots }) { return () => { + const hidePageClass = (props.isInOutlet) ? 'ion-page-invisible' : ''; return h( 'div', { - ['class']: 'ion-page ion-page-invisible', + ['class']: `ion-page ${hidePageClass}`, ...attrs, ref: 'ionPage' }, diff --git a/packages/vue/src/components/IonRouterOutlet.ts b/packages/vue/src/components/IonRouterOutlet.ts index 3eed64fab8..77d164b5e6 100644 --- a/packages/vue/src/components/IonRouterOutlet.ts +++ b/packages/vue/src/components/IonRouterOutlet.ts @@ -301,7 +301,7 @@ export const IonRouterOutlet = defineComponent({ 'ion-router-outlet', { ref: 'ionRouterOutlet' }, // TODO types - components && components.map((c: any) => h(c.vueComponent, { key: c.pathname })) + components && components.map((c: any) => h(c.vueComponent, { key: c.pathname, isInOutlet: true })) ) } }); diff --git a/packages/vue/test-app/src/components/ModalContent.vue b/packages/vue/test-app/src/components/ModalContent.vue index 2348e54736..b69172383e 100644 --- a/packages/vue/test-app/src/components/ModalContent.vue +++ b/packages/vue/test-app/src/components/ModalContent.vue @@ -1,19 +1,22 @@