use explicit nested routes for settings and wallet CMS tabs.

This commit is contained in:
2026-09-06 16:08:02 +02:00
parent 82932ce7c8
commit 564b016f47
3 changed files with 22 additions and 5 deletions
+2 -1
View File
@@ -11,6 +11,7 @@ export {}
/* prettier-ignore */ /* prettier-ignore */
declare module 'vue' { declare module 'vue' {
export interface GlobalComponents { export interface GlobalComponents {
BitcoinWallet: typeof import('./components/wallet/BitcoinWallet.vue')['default']
CmsListPagination: typeof import('./components/CmsListPagination.vue')['default'] CmsListPagination: typeof import('./components/CmsListPagination.vue')['default']
CreateOrEditCategoryModal: typeof import('./components/CreateOrEditCategoryModal.vue')['default'] CreateOrEditCategoryModal: typeof import('./components/CreateOrEditCategoryModal.vue')['default']
CreateOrEditDiscountCodeModal: typeof import('./components/CreateOrEditDiscountCodeModal.vue')['default'] CreateOrEditDiscountCodeModal: typeof import('./components/CreateOrEditDiscountCodeModal.vue')['default']
@@ -56,9 +57,9 @@ declare module 'vue' {
MoneroWallet: typeof import('./components/wallet/MoneroWallet.vue')['default'] MoneroWallet: typeof import('./components/wallet/MoneroWallet.vue')['default']
OrderCartPanel: typeof import('./components/OrderCartPanel.vue')['default'] OrderCartPanel: typeof import('./components/OrderCartPanel.vue')['default']
OrderChatPanel: typeof import('./components/OrderChatPanel.vue')['default'] OrderChatPanel: typeof import('./components/OrderChatPanel.vue')['default']
OrderInvoicePaymentPanel: typeof import('./components/OrderInvoicePaymentPanel.vue')['default']
OrderLineAutoFulfillmentModal: typeof import('./components/OrderLineAutoFulfillmentModal.vue')['default'] OrderLineAutoFulfillmentModal: typeof import('./components/OrderLineAutoFulfillmentModal.vue')['default']
OrderManualShippingQuotePanel: typeof import('./components/OrderManualShippingQuotePanel.vue')['default'] OrderManualShippingQuotePanel: typeof import('./components/OrderManualShippingQuotePanel.vue')['default']
OrderMoneroPaymentPanel: typeof import('./components/OrderMoneroPaymentPanel.vue')['default']
OrderPaymentPanel: typeof import('./components/OrderPaymentPanel.vue')['default'] OrderPaymentPanel: typeof import('./components/OrderPaymentPanel.vue')['default']
OrderSummaryPanel: typeof import('./components/OrderSummaryPanel.vue')['default'] OrderSummaryPanel: typeof import('./components/OrderSummaryPanel.vue')['default']
RichTextEditor: typeof import('./components/RichTextEditor.vue')['default'] RichTextEditor: typeof import('./components/RichTextEditor.vue')['default']
+2 -1
View File
@@ -7,7 +7,8 @@ export const ROUTE_NAMES = {
DiscountCodes: 'DiscountCodes', DiscountCodes: 'DiscountCodes',
ShopSettings: 'ShopSettings', ShopSettings: 'ShopSettings',
Notifications: 'Notifications', Notifications: 'Notifications',
Wallet: 'Wallet', MoneroWallet: 'MoneroWallet',
BitcoinWallet: 'BitcoinWallet',
Orders: 'Orders', Orders: 'Orders',
OrderDetail: 'OrderDetail' OrderDetail: 'OrderDetail'
} as const; } as const;
+18 -3
View File
@@ -57,9 +57,10 @@ const router = createRouter({
path: '/settings', path: '/settings',
component: () => import('../views/CmsSettingsLayout.vue'), component: () => import('../views/CmsSettingsLayout.vue'),
meta: { requiresAuth: true, title: 'CMS - Settings', activeMenu: '/settings' }, meta: { requiresAuth: true, title: 'CMS - Settings', activeMenu: '/settings' },
redirect: { name: ROUTE_NAMES.ShopSettings },
children: [ children: [
{ {
path: '', path: 'shop',
name: ROUTE_NAMES.ShopSettings, name: ROUTE_NAMES.ShopSettings,
component: () => import('../views/CmsShopSettingsView.vue'), component: () => import('../views/CmsShopSettingsView.vue'),
meta: { requiresAuth: true, title: 'CMS - Shop settings', activeMenu: '/settings' } meta: { requiresAuth: true, title: 'CMS - Shop settings', activeMenu: '/settings' }
@@ -74,9 +75,23 @@ const router = createRouter({
}, },
{ {
path: '/wallet', path: '/wallet',
name: ROUTE_NAMES.Wallet,
component: () => import('../views/CmsWalletView.vue'), component: () => import('../views/CmsWalletView.vue'),
meta: { requiresAuth: true, title: 'CMS - Wallet' } meta: { requiresAuth: true, title: 'CMS - Wallet', activeMenu: '/wallet' },
redirect: { name: ROUTE_NAMES.MoneroWallet },
children: [
{
path: 'monero',
name: ROUTE_NAMES.MoneroWallet,
component: () => import('../components/wallet/MoneroWallet.vue'),
meta: { requiresAuth: true, title: 'CMS - Monero wallet', activeMenu: '/wallet' }
},
{
path: 'bitcoin',
name: ROUTE_NAMES.BitcoinWallet,
component: () => import('../components/wallet/BitcoinWallet.vue'),
meta: { requiresAuth: true, title: 'CMS - Bitcoin wallet', activeMenu: '/wallet' }
}
]
}, },
{ {
path: '/:pathMatch(.*)*', path: '/:pathMatch(.*)*',