Skip to content

Commit 3264021

Browse files
committed
refactor(App): extract common component tree
Signed-off-by: Fernando Fernández <[email protected]>
1 parent 231ddd8 commit 3264021

File tree

2 files changed

+22
-14
lines changed

2 files changed

+22
-14
lines changed

frontend/src/App.vue

+5-14
Original file line numberDiff line numberDiff line change
@@ -7,27 +7,17 @@
77
:name="route.meta.layout.transition.enter ?? defaultTransition"
88
:mode="defaultTransitionMode ?? route.meta.layout.transition.mode">
99
<Suspense @resolve="apploaded = true">
10-
<div
10+
<AppComp
1111
:key="route.meta.layout.name ?? 'default'"
12-
class="uno-h-full j-transition">
13-
<component
14-
:is="getLayoutComponent(route.meta.layout.name)"
15-
:key="route.meta.layout.name ?? 'default'">
12+
:comp="getLayoutComponent(route.meta.layout.name)">
1613
<JTransition
1714
:name="route.meta.layout.transition.enter ?? defaultTransition"
1815
:mode="defaultTransitionMode ?? route.meta.layout.transition.mode">
1916
<Suspense suspensible>
20-
<div
21-
:key="route.name ?? route.path"
22-
class="uno-h-full j-transition">
23-
<component
24-
:is="Component"
25-
:key="route.name ?? route.path" />
26-
</div>
17+
<AppComp :key="route.path" :comp="Component" />
2718
</Suspense>
2819
</JTransition>
29-
</component>
30-
</div>
20+
</AppComp>
3121
<template v-if="!apploaded" #fallback>
3222
<JSplashscreen />
3323
</template>
@@ -50,6 +40,7 @@ import type { RouteMeta } from 'vue-router/auto';
5040
import DefaultLayout from '@/layouts/default.vue';
5141
import FullPageLayout from '@/layouts/fullpage.vue';
5242
import ServerLayout from '@/layouts/server.vue';
43+
import AppComp from '@/AppComp.vue';
5344
5445
const apploaded = shallowRef(false);
5546
const defaultTransition = 'slide-x-reverse';

frontend/src/AppComp.vue

+17
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
<template>
2+
<div
3+
class="uno-h-full j-transition">
4+
<component
5+
:is="comp">
6+
<slot />
7+
</component>
8+
</div>
9+
</template>
10+
11+
<script setup lang="ts">
12+
import type { Component } from 'vue';
13+
14+
defineProps<{
15+
comp: Component;
16+
}>();
17+
</script>

0 commit comments

Comments
 (0)