Untitled
unknown
plain_text
23 days ago
6.9 kB
3
Indexable
import { createBrowserRouter, RouterProvider, Navigate, } from "react-router-dom"; import { useContext } from "react"; import { AuthContext } from "../context/AuthContext"; import { ToastContainer } from "react-toastify"; import AdminLayout from "../layout/AdminLayout"; import CustomerLayout from "../layout/LayoutCustomer/LayoutCustomer"; import Cinema from "../pages/CinemaCustomer/CinemaCustomer"; import Home from "../pages/Home"; import Login from "../pages/Login"; import Movie from "../pages/MovieV2/Movie"; import Purchase from "../pages/Purchase"; import Register from "../pages/Register"; import Schedule from "../pages/Schedule"; import Search from "../pages/Search"; import Tickets from "../pages/Tickets"; import Ticket from "../pages/TicketPrice/Ticket"; import User from "../pages/User"; import MovieDetail from "../pages/MovieDetail"; import Order from "../pages/Order"; import Dashboard from "../pages/DashboardAnalysis/Dashboard"; import Room from "../pages/Room/Room"; import Seat from "../pages/Seat"; import VoucherPage from "../pages/Voucher/VoucherPage"; import Booking from "../pages/Booking"; import ComboCustomer from "../pages/ComboCustomer/Combo"; import TotalSlide from "../pages/TotalSlide"; import MovieList from "../components/MovieList/MovieList"; import DetailMovie from "../components/DetailMovie/DetailMovie"; import ShowtimePage from "../pages/Showtimes/ShowtimePage"; import MovietypePage from "../pages/MovieType/MovieTypePage"; import ComboPage from "../pages/Combo/ComboPage"; import VoucherCustomerPage from "../pages/VoucherCustomer/VoucherCustomer"; import VerifyOtpRegister from "../pages/VerifyOtpRegister"; import SeatAvailable from "../components/Seat/SeatAvailable[Customer]"; import MovieShowing from "../pages/MovieShowing/MovieShowing"; import MovieShowingCustomer from "../components/MovieList/MovieList"; import BookingTicketCustomer from "../components/Cinema/CinemaPage"; import MyTicket from "../pages/Ticket/MyTicket"; import RolePage from "../pages/Role/RolePage"; import EgiftCustomer from "../pages/EgiftCustomer/egiftcustomer"; import EgiftDetailCustomer from "../pages/EgiftDetailCustomer/egiftdetailcustomer"; import Feedback from "../pages/Feedback"; import BookingAdmin from "../pages/BookingAdmin/BookingAdmin"; import Contact from "../pages/Contact"; import EgiftsAdminPage from "../pages/Egiftsadmin/Egiftsadmin"; import MyTicketDetail from "../pages/Ticket/MyTicketDetail"; import VerifyOtpRegisterGoogle from "../pages/VerifyOtpRegisterGoogle"; import Profile from "../pages/profile/profile"; import TicketBorad from "../pages/TicketBoard/TicketBoard"; import Support from "../pages/Support/Support"; import FavoriteMovies from "../pages/Favorite/FavoriteMovies"; import Service from "../pages/Service/Service"; import AdminServiceList from "../pages/ServiceForAdmin/AdminServiceList"; const ProtectedAdminRoute = ({ element }) => { const { auth } = useContext(AuthContext); if (!auth.token || auth.role !== "admin") { return <Navigate to="/login" replace />; } return element; }; const router = createBrowserRouter([ { path: "/:id", element: <Home /> }, { path: "/login", element: <Login /> }, { path: "/register", element: <Register /> }, { path: "/VerifyOtpRegister", element: <VerifyOtpRegister /> }, { path: "/VerifyOtpRegisterGoogle", element: <VerifyOtpRegisterGoogle /> }, { path: "/movie-detail/:id", element: <MovieDetail /> }, { path: "/purchase/:id", element: <Purchase /> }, { path: "/", element: <CustomerLayout />, children: [ { index: true, element: <MovieShowingCustomer /> }, { path: "login", element: <Login /> }, { path: "register", element: <Register /> }, { path: "movie-detail/:id", element: <MovieDetail /> }, { path: "purchase/:id", element: <Purchase /> }, { path: "schedule", element: <Schedule /> }, { path: "booking/:transactionId", element: <Booking /> }, { path: "booking", element: <Booking /> }, { path: "movieshowing", element: <MovieShowingCustomer /> }, { path: "bookingticket", element: <BookingTicketCustomer /> }, { path: "seatAvailable/:id", element: <SeatAvailable /> }, { path: "movielist", element: <MovieList /> }, { path: "movielist/:id", element: <DetailMovie /> }, { path: "totalslide", element: <TotalSlide /> }, { path: "myticket/:userId", element: <MyTicket /> }, { path: "contact", element: <Contact /> }, { path: "egiftcustomer", element: <EgiftCustomer /> }, { path: "egiftdetailcustomer/:id", element: <EgiftDetailCustomer /> }, { path: "myticketdetail/:id", element: <MyTicketDetail /> }, { path: "combocustomer", element: <ComboCustomer /> }, { path: "favoritemovie", element: <FavoriteMovies /> }, { path: "service", element: <Service /> }, // { path: "vouchercustomerpage", element: <VoucherCustomerPage /> }, { path: "/profile", element: <Profile /> }, { path: "egiftdetailcustomer/:id", element: <EgiftDetailCustomer /> }, { path: "ticketboard", element: <TicketBorad /> }, ], }, { path: "/", element: <ProtectedAdminRoute element={<AdminLayout />} />, children: [ { index: true, element: <Navigate to="/admin/dashboard" replace /> }, { path: "/admin/dashboard", element: <Dashboard /> }, { path: "/admin/movie", element: <Movie /> }, { path: "/admin/search", element: <Search /> }, { path: "/admin/user", element: <User /> }, { path: "/admin/order", element: <Order /> }, { path: "/admin/cinema", element: <Cinema /> }, { path: "/admin/room", element: <Room /> }, { path: "/admin/seat", element: <Seat /> }, { path: "/admin/schedule", element: <Schedule /> }, { path: "/admin/ticketmanagement", element: <Ticket /> }, { path: "/admin/ticket/", element: <Tickets /> }, { path: "/admin/voucher", element: <VoucherPage /> }, { path: "/admin/movieshowing", element: <MovieShowing /> }, { path: "/admin/showtime", element: <ShowtimePage /> }, { path: "/admin/movietype", element: <MovietypePage /> }, { path: "/admin/combo", element: <ComboPage /> }, { path: "/admin/feedback", element: <Feedback /> }, { path: "/admin/role", element: <RolePage /> }, { path: "/admin/booking", element: <BookingAdmin /> }, { path: "/admin/egiftadmin", element: <EgiftsAdminPage /> }, { path: "/admin/support", element: <Support /> }, { path: "/admin/service", element: <AdminServiceList /> }, ], }, { path: "*", element: <Navigate to="/" replace /> }, ]); const AppRouter = () => ( <> <ToastContainer /> <RouterProvider router={router} /> </> ); export default AppRouter;
Editor is loading...
Leave a Comment