import { createRoot } from 'react-dom/client' import { createBrowserRouter, RouterProvider, } from 'react-router-dom' import '@/assets/global.css' import App from '@/views/App' import Standlone from '@/views/Standlone' import Login from '@/views/Login' import Logout from '@/views/Logout' import ErrorPage from '@/components/ErrorPage' import RequireAuth from '@/components/RequireAuth' import ReservationNewest from '@/views/reservation/Newest' import ReservationDetail from '@/views/reservation/Detail' import ChangePassword from '@/views/account/ChangePassword' import AccountProfile from '@/views/account/Profile' import AccountManagement from '@/views/account/Management' import RoleList from '@/views/account/RoleList' import FeedbackIndex from '@/views/feedback/Index' import FeedbackDetail from '@/views/feedback/Detail' import FeedbackCustomerDetail from '@/views/feedback/CustomerDetail' import ReportIndex from '@/views/report/Index' import NoticeIndex from '@/views/notice/Index' import NoticeDetail from '@/views/notice/Detail' import InvoiceIndex from '@/views/invoice/Index' import InvoiceDetail from '@/views/invoice/Detail' import InvoiceHistory from '@/views/invoice/History' import InvoicePaid from '@/views/invoice/Paid' import InvoicePaidDetail from '@/views/invoice/PaidDetail' import Airticket from '@/views/airticket/Index' import AirticketPlan from '@/views/airticket/Plan' import AirticketInvoice from '@/views/airticket/Invoice' import AirticketInvoicePaid from '@/views/airticket/InvoicePaid' import Trainticket from '@/views/trainticket/index' import TrainticketPlan from '@/views/trainticket/plan' import TrainticketInvoice from '@/views/trainticket/invoice' import TrainticketInvoicePaid from '@/views/trainticket/invoicePaid' import { ThemeContext } from '@/stores/ThemeContext' import { usingStorage } from '@/hooks/usingStorage' import useAuthStore from './stores/Auth' import { isNotEmpty } from '@/utils/commons' import ProductsManage from '@/views/products/Manage'; import ProductsDetail from '@/views/products/Detail'; import ProductsAudit from '@/views/products/Audit'; import ImageViewer from '@/views/ImageViewer'; import CustomerImageViewer from '@/views/CustomerImageViewer'; import PickYear from './views/products/PickYear' import { PERM_ACCOUNT_MANAGEMENT, PERM_ROLE_NEW, PERM_TRAIN_TICKET, PERM_AIR_TICKET, PERM_PRODUCTS_MANAGEMENT, PERM_PRODUCTS_OFFER_PUT, PERM_RESERVATION_ALL, PERM_FEEDBACK_ALL, PERM_INVOICE_ALL, PERM_REPORT_ALL } from '@/config' import './i18n' const initRouter = async () => { return createBrowserRouter([ { path: '/', element: , errorElement: , children: [ { index: true, element: }, { path: 'account/change-password', element: }, { path: 'account/profile', element: }, { path: 'account/management', element: }, { path: 'account/role-list', element: }, // { path: 'reservation/newest', element: }, { path: 'reservation/:reservationId', element: }, // { path: 'feedback', element: }, { path: 'feedback/:GRI_SN/:CII_SN/:RefNo', element: }, { path: 'feedback/:GRI_SN/:RefNo', element: }, // { path: 'report', element: }, // { path: 'notice', element: }, { path: 'notice/:CCP_BLID', element: }, // { path: 'invoice',element:}, { path: 'invoice/detail/:GMDSN/:GSN/:VEI',element:}, { path: 'invoice/history/:GMDSN/:GSN/:VEI',element:}, { path: 'invoice/paid',element:}, { path: 'invoice/paid/detail/:flid', element: }, { path: 'airticket',element: }, { path: 'airticket/plan/:coli_sn/:gri_sn',element:}, { path: 'airticket/invoice',element:}, { path: 'airticket/invoicepaid',element:}, // { path: 'trainticket',element: }, { path: 'trainticket/plan/:coli_sn/:gri_sn',element:}, { path: 'trainticket/invoice',element:}, { path: 'trainticket/invoicepaid',element:}, // { path: "products",element: }, { path: "products/:travel_agency_id/:use_year/:audit_state/audit",element:}, { path: "products/:travel_agency_id/:use_year/:audit_state/edit",element:}, { path: "products/audit",element:}, { path: "products/edit",element:}, { path: "products/pick-year",element: }, // ] }, { element: , children: [ { path: '/login', element: }, { path: '/logout', element: }, { path: '/image-viewer/:GRI_SN/:GRI_No', element: }, { path: '/customer-image/:key', element: }, ] } ]) } const initAppliction = async () => { const { loginToken, userId } = usingStorage() if (isNotEmpty(userId) && isNotEmpty(loginToken)) { await useAuthStore.getState().initAuth() } const router = await initRouter() const root = document.getElementById('root') if (!root) throw new Error('No root element found') createRoot(root).render( //
Loading...
} />
//
) } initAppliction()