Untitled
unknown
plain_text
9 months ago
6.9 kB
6
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