diff --git a/src/App.svelte b/src/App.svelte
index 022bf55..0c25e39 100644
--- a/src/App.svelte
+++ b/src/App.svelte
@@ -7,7 +7,6 @@
/** layout */
import routes from './__routes'
import Error from './__error.svelte'
- import LazyRoute from '$lib/router/LazyRoute.svelte'
import LazyRouteGuard from '$lib/router/LazyRouteGuard.svelte'
let isMounted = false
@@ -30,9 +29,13 @@
{#if !$isLoading && isMounted}
{#each routes as { path, layout, component, loading }}
-
+ {#if layout}
+
+
+
+ {:else}
-
+ {/if}
{/each}
diff --git a/src/__routes.ts b/src/__routes.ts
index f212d12..89731ea 100644
--- a/src/__routes.ts
+++ b/src/__routes.ts
@@ -1,8 +1,27 @@
import { defineRoutes } from '$lib/router';
-export default defineRoutes([
- { path: '/', component: () => import('$routes/index.svelte') },
- { path: '/oauth', component: () => import('$routes/oauth/index.svelte') },
- { path: '/oauth/failure', component: () => import('$routes/oauth/failure.svelte') },
- { path: '/oauth/success', component: () => import('$routes/oauth/success.svelte') },
-])
+import Layout from '$src/__layout.svelte'
+import Loading from '$src/__loading.svelte'
+
+export default defineRoutes({
+ routes: [
+ {
+ path: '/',
+ component: () => import('./routes/index.svelte')
+ },
+ {
+ path: '/oauth',
+ component: () => import('$routes/oauth/index.svelte')
+ },
+ {
+ path: '/oauth/failure',
+ component: () => import('$routes/oauth/failure.svelte')
+ },
+ {
+ path: '/oauth/success',
+ component: () => import('$routes/oauth/success.svelte')
+ },
+ ],
+ layout: Layout,
+ loading: Loading,
+})
diff --git a/src/lib/router/routes.ts b/src/lib/router/routes.ts
index 269e5c5..af45bec 100644
--- a/src/lib/router/routes.ts
+++ b/src/lib/router/routes.ts
@@ -1,6 +1,3 @@
-import Layout from '$src/__layout.svelte'
-import Loading from '$src/__loading.svelte'
-
import { ComponentType, SvelteComponentTyped } from 'svelte'
export interface Route {
@@ -13,16 +10,18 @@ export interface Route {
interface RouteDefinition {
component: () => Promise,
path: string,
- layout: ComponentType>,
- loading: ComponentType>,
+ layout: ComponentType> | null,
+ loading: ComponentType> | null,
}
-interface RouteDefault {
- layout: ComponentType>,
- loading: ComponentType>,
+interface RouteConfig {
+ routes: Route[],
+ layout?: ComponentType> | null,
+ loading?: ComponentType> | null,
}
-const defineRoutes = (routes: Route[], { layout = Layout, loading = Loading }: RouteDefault = { layout: Layout, loading: Loading }): RouteDefinition[] =>
- routes.map(route => ({ ...route, layout: route?.layout ?? layout, loading: route?.loading ?? loading }))
+const defineRoutes = (config: RouteConfig): RouteDefinition[] => {
+ return config.routes.map(route => ({ ...route, layout: route?.layout ?? config?.layout ?? null, loading: route?.loading ?? config?.loading ?? null }))
+}
export default defineRoutes