import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router' import LayoutDefault from '@/views/layouts/LayoutDefault.vue' import { useUserStore } from './stores/userStore' import { isElectron } from './utils/envUtil' const isFileProtocol = window.location.protocol === 'file:' const basePath = isElectron() ? '/' : window.location.pathname const router = createRouter({ history: isFileProtocol ? createWebHashHistory() : // Base path must be specified to ensure correct relative paths // Example: For URL 'http://localhost:7801/ComfyBackendDirect', // we need this base path or assets will incorrectly resolve from 'http://localhost:7801/' createWebHistory(basePath), routes: [ { path: '/', component: LayoutDefault, children: [ { path: '', name: 'GraphView', component: () => import('@/views/GraphView.vue'), beforeEnter: async (_to, _from, next) => { const userStore = useUserStore() await userStore.initialize() if (userStore.needsLogin) { next('/user-select') } else { next() } } }, { path: 'user-select', name: 'UserSelectView', component: () => import('@/views/UserSelectView.vue') } ] } ], scrollBehavior(_to, _from, savedPosition) { if (savedPosition) { return savedPosition } else { return { top: 0 } } } }) export default router