import type { RouteRecordRaw } from "vue-router"; import { createRouter, createWebHistory } from "@ionic/vue-router"; import authRoutes from "./auth"; import { createRouterGuard } from "./guard"; const routes: Array = [ { path: "/", redirect: "/layout/riwa", }, { path: "/:pathMatch(.*)*", redirect: "/layout/riwa", }, ...authRoutes, { path: "/layout", component: () => import("@/components/layout/default.vue"), children: [ { path: "riwa", component: () => import("@/views/riwa/index.vue"), }, { path: "market", component: () => import("@/views/market/index.vue"), }, { path: "trade", component: () => import("@/views/trade/index.vue"), }, { path: "chat", component: () => import("@/views/chat/index.vue"), }, { path: "user", component: () => import("@/views/user/index.vue"), meta: { requiresAuth: true }, }, ], }, { path: "/onchain-address", component: () => import("@/views/onchain-address/index.vue"), meta: { requiresAuth: true }, }, { path: "/deposit/fiat", component: () => import("@/views/deposit/fiat.vue"), meta: { requiresAuth: true }, }, { path: "/withdraw/index", component: () => import("@/views/withdraw/index.vue"), meta: { requiresAuth: true }, }, { path: "/wallet/bill", component: () => import("@/views/wallet/bill.vue"), meta: { requiresAuth: true }, }, { path: "/wallet/transfer", component: () => import("@/views/wallet/transfer.vue"), meta: { requiresAuth: true }, }, { path: "/user/settings", component: () => import("@/views/user-settings/outlet.vue"), meta: { requiresAuth: true }, children: [ { path: "", component: () => import("@/views/user-settings/index.vue"), meta: { requiresAuth: true }, }, { path: "username", component: () => import("@/views/user-settings/username.vue"), meta: { requiresAuth: true }, }, { path: "nickname", component: () => import("@/views/user-settings/nickname.vue"), meta: { requiresAuth: true }, }, { path: "email", component: () => import("@/views/user-settings/email.vue"), meta: { requiresAuth: true }, }, ], }, { path: "/system-settings", component: () => import("@/views/system-settings/outlet.vue"), children: [ { path: "", component: () => import("@/views/system-settings/index.vue"), }, { path: "language", component: () => import("@/views/system-settings/language.vue"), }, { path: "theme", component: () => import("@/views/system-settings/theme.vue"), }, ], }, { path: "/issue/issuing-apply", props: ({ query, params }) => ({ query, params }), component: () => import("@/views/issue/issuing-apply/index.vue"), meta: { requiresAuth: true }, }, { path: "/trade-settings/bank-management", component: () => import("@/views/trade-settings/bank-management/index.vue"), meta: { requiresAuth: true }, }, { path: "/trade-settings/my-subscribe", component: () => import("@/views/trade-settings/my-subscribe/outlet.vue"), meta: { requiresAuth: true }, children: [ { path: "", component: () => import("@/views/trade-settings/my-subscribe/index.vue"), meta: { requiresAuth: true }, }, // { // path: ":id", // props: true, // component: () => import("@/views/trade-settings/my-subscribe/detail.vue"), // meta: { requiresAuth: true }, // }, ], }, { path: "/trade-settings/my-issues", component: () => import("@/views/trade-settings/my-issues/outlet.vue"), meta: { requiresAuth: true }, children: [ { path: "", component: () => import("@/views/trade-settings/my-issues/index.vue"), meta: { requiresAuth: true }, }, { path: ":id", props: true, component: () => import("@/views/trade-settings/my-issues/detail.vue"), meta: { requiresAuth: true }, }, ], }, { path: "/trade-settings/bank-management/add", component: () => import("@/views/trade-settings/bank-management/add.vue"), meta: { requiresAuth: true }, }, { path: "/trade-rwa/:id", props: true, component: () => import("@/views/trade-rwa/outlet.vue"), meta: { requiresAuth: true }, children: [ { path: "", component: () => import("@/views/trade-rwa/index.vue"), meta: { requiresAuth: true }, }, { path: "edit", name: "trade-rwa-edit", component: () => import("@/views/trade-rwa/edit.vue"), meta: { requiresAuth: true }, }, ], }, ]; const router = createRouter({ history: createWebHistory(import.meta.env.BASE_URL), routes, }); createRouterGuard(router); export { router };