Files
remanso/src/router/router.ts
2026-03-28 09:38:55 +01:00

111 lines
2.5 KiB
TypeScript

import { nextTick } from "vue"
import { createRouter, createWebHistory, RouteRecordRaw } from "vue-router"
import Home from "@/views/HomeApp.vue"
const routes: Array<RouteRecordRaw> = [
{
path: "/repo-list",
name: "RepoList",
component: () => import("@/views/RepoList.vue")
},
{
path: "/:user/:repo",
name: "FluxNoteView",
props: true,
component: () => import("@/views/FluxNoteView.vue")
},
{
path: "/tiboudenote",
name: "PublicNoteListView",
component: () => import("@/views/PublicNoteListView.vue")
},
{
path: "/pub",
name: "PublicNoteListView",
component: () => import("@/views/PublicNoteListView.vue")
},
{
path: "/pub/:shortDid",
name: "PublicNoteListByDidView",
props: true,
component: () => import("@/views/PublicNoteListByDidView.vue")
},
{
path: "/pub/:shortDid/:rkey/:slug?",
name: "PublicNoteView",
props: true,
component: () => import("@/views/PublicNoteView.vue")
},
{
path: "/:user/:repo/inbox",
name: "FleetingNotes",
props: true,
component: () => import("@/views/FleetingNotes.vue")
},
{
path: "/:user/:repo/draft",
name: "DraftNotes",
props: true,
component: () => import("@/views/DraftNotes.vue")
},
{
path: "/:user/:repo/todo",
name: "TodoNotes",
props: true,
component: () => import("@/views/TodoNotes.vue")
},
{
path: "/:user/:repo/history",
name: "HistoricNotes",
props: true,
component: () => import("@/views/HistoricNotes.vue")
},
{
path: "/:user/:repo/spaced-repetition",
name: "SpacedRepetitionCard",
props: true,
component: () => import("@/views/SpacedRepetitionCard.vue")
},
{
path: "/:user/:repo/need-review-cards",
name: "NeedReviewCards",
props: true,
component: () => import("@/views/NeedReviewCards.vue")
},
{
path: "/about",
name: "About",
component: () => import("@/views/AboutApp.vue")
},
{
path: "/",
name: "Home",
component: Home
},
{
path: "/:catchAll(.*)",
name: "SpaceCowboy",
component: () => import("@/views/SpaceCowboy.vue")
}
]
export const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes
})
router.beforeEach(() => {
if (!("startViewTransition" in document)) return
return new Promise<void>((resolve) => {
;(
document as Document & {
startViewTransition: (cb: () => Promise<void>) => void
}
).startViewTransition(async () => {
resolve()
await nextTick()
})
})
})