nest routes
This commit is contained in:
@@ -13,12 +13,13 @@ import RestaurantServices from "./RestaurantServices";
|
|||||||
import Ads1 from "components/Ads/Ads1";
|
import Ads1 from "components/Ads/Ads1";
|
||||||
import { Loader } from "components/Loader/Loader";
|
import { Loader } from "components/Loader/Loader";
|
||||||
import { useRestaurant } from "hooks/useRestaurant";
|
import { useRestaurant } from "hooks/useRestaurant";
|
||||||
import { useParams } from "react-router-dom";
|
import { useParams, Outlet, useLocation } from "react-router-dom";
|
||||||
import { useGetRestaurantDetailsQuery } from "redux/api/others";
|
import { useGetRestaurantDetailsQuery } from "redux/api/others";
|
||||||
import LocalStorageHandler from "../menu/components/LocalStorageHandler";
|
import LocalStorageHandler from "../menu/components/LocalStorageHandler";
|
||||||
|
|
||||||
export default function RestaurantPage() {
|
export default function RestaurantPage() {
|
||||||
const param = useParams();
|
const param = useParams();
|
||||||
|
const { pathname } = useLocation();
|
||||||
const { isRTL } = useAppSelector((state) => state.locale);
|
const { isRTL } = useAppSelector((state) => state.locale);
|
||||||
const { data: restaurant, isLoading } = useGetRestaurantDetailsQuery("595", {
|
const { data: restaurant, isLoading } = useGetRestaurantDetailsQuery("595", {
|
||||||
skip: !param.id,
|
skip: !param.id,
|
||||||
@@ -39,6 +40,8 @@ export default function RestaurantPage() {
|
|||||||
localStorage.setItem("restaurantID", restaurant.restautantId);
|
localStorage.setItem("restaurantID", restaurant.restautantId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (param.id && !pathname.endsWith(param.id)) return <Outlet />;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className={styles.languageSwitch}>
|
<div className={styles.languageSwitch}>
|
||||||
|
|||||||
@@ -17,7 +17,7 @@ import SearchPage from "pages/search/page";
|
|||||||
import SplitBillPage from "pages/split-bill/page";
|
import SplitBillPage from "pages/split-bill/page";
|
||||||
import React, { ReactNode, Suspense, useEffect } from "react";
|
import React, { ReactNode, Suspense, useEffect } from "react";
|
||||||
import { createHashRouter, useLocation } from "react-router-dom";
|
import { createHashRouter, useLocation } from "react-router-dom";
|
||||||
import { Error400Page, ErrorPage } from "../pages/errors";
|
import { Error400Page, ErrorPage } from "pages/errors";
|
||||||
|
|
||||||
const { useBreakpoint } = Grid;
|
const { useBreakpoint } = Grid;
|
||||||
|
|
||||||
@@ -58,93 +58,90 @@ export const router = createHashRouter([
|
|||||||
element: <PageWrapper children={<RestaurantPage />} />,
|
element: <PageWrapper children={<RestaurantPage />} />,
|
||||||
errorElement: <ErrorPage />,
|
errorElement: <ErrorPage />,
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
path: "/:id",
|
path: "/:id",
|
||||||
element: <PageWrapper children={<RestaurantPage />} />,
|
element: <PageWrapper children={<RestaurantPage />} />,
|
||||||
errorElement: <ErrorPage />,
|
errorElement: <ErrorPage />,
|
||||||
},
|
children: [
|
||||||
|
{
|
||||||
|
path: "menu",
|
||||||
|
element: <PageWrapper children={<MenuPage />} />,
|
||||||
|
errorElement: <ErrorPage />,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "cart",
|
||||||
|
element: (
|
||||||
|
<PageWrapper
|
||||||
|
children={
|
||||||
|
<AppLayout>
|
||||||
|
<CartPage />
|
||||||
|
</AppLayout>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
),
|
||||||
|
errorElement: <ErrorPage />,
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
path: "/:id/menu",
|
path: "address",
|
||||||
element: <PageWrapper children={<MenuPage />} />,
|
element: <PageWrapper children={<AddressPage />} />,
|
||||||
errorElement: <ErrorPage />,
|
errorElement: <ErrorPage />,
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
path: "/:id/cart",
|
path: "checkout",
|
||||||
element: (
|
element: <PageWrapper children={<CheckoutPage />} />,
|
||||||
<PageWrapper
|
errorElement: <ErrorPage />,
|
||||||
children={
|
},
|
||||||
<AppLayout>
|
{
|
||||||
<CartPage />
|
path: "split-bill",
|
||||||
</AppLayout>
|
element: <PageWrapper children={<SplitBillPage />} />,
|
||||||
}
|
errorElement: <ErrorPage />,
|
||||||
/>
|
},
|
||||||
),
|
|
||||||
errorElement: <ErrorPage />,
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
{
|
||||||
path: "/:id/address",
|
path: "product/:productId",
|
||||||
element: <PageWrapper children={<AddressPage />} />,
|
element: <PageWrapper children={<ProductDetailPage />} />,
|
||||||
errorElement: <ErrorPage />,
|
errorElement: <ErrorPage />,
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
path: "/:id/checkout",
|
path: "search",
|
||||||
element: <PageWrapper children={<CheckoutPage />} />,
|
element: <PageWrapper children={<SearchPage />} />,
|
||||||
errorElement: <ErrorPage />,
|
errorElement: <ErrorPage />,
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
path: "/:id/split-bill",
|
path: "orders",
|
||||||
element: <PageWrapper children={<SplitBillPage />} />,
|
element: (
|
||||||
errorElement: <ErrorPage />,
|
<PageWrapper
|
||||||
},
|
children={
|
||||||
|
<PrivateRoute>
|
||||||
|
<OrdersPage />
|
||||||
|
</PrivateRoute>
|
||||||
|
}
|
||||||
|
/>
|
||||||
|
),
|
||||||
|
errorElement: <ErrorPage />,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: "login",
|
||||||
|
element: <PageWrapper children={<LoginPage />} />,
|
||||||
|
errorElement: <ErrorPage />,
|
||||||
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
path: "/:id/product/:productId",
|
path: "otp",
|
||||||
element: <PageWrapper children={<ProductDetailPage />} />,
|
element: <PageWrapper children={<OtpPage />} />,
|
||||||
errorElement: <ErrorPage />,
|
errorElement: <ErrorPage />,
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
path: "/:id/search",
|
path: "order/:orderId",
|
||||||
element: <PageWrapper children={<SearchPage />} />,
|
element: <PageWrapper children={<OrderPage />} />,
|
||||||
errorElement: <ErrorPage />,
|
errorElement: <ErrorPage />,
|
||||||
},
|
},
|
||||||
|
],
|
||||||
{
|
|
||||||
path: "/:id/orders",
|
|
||||||
element: (
|
|
||||||
<PageWrapper
|
|
||||||
children={
|
|
||||||
<PrivateRoute>
|
|
||||||
<OrdersPage />
|
|
||||||
</PrivateRoute>
|
|
||||||
}
|
|
||||||
/>
|
|
||||||
),
|
|
||||||
errorElement: <ErrorPage />,
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
path: "/:id/login",
|
|
||||||
element: <PageWrapper children={<LoginPage />} />,
|
|
||||||
errorElement: <ErrorPage />,
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
path: "/:id/otp",
|
|
||||||
element: <PageWrapper children={<OtpPage />} />,
|
|
||||||
errorElement: <ErrorPage />,
|
|
||||||
},
|
|
||||||
|
|
||||||
{
|
|
||||||
path: "/:id/order/:orderId",
|
|
||||||
element: <PageWrapper children={<OrderPage />} />,
|
|
||||||
errorElement: <ErrorPage />,
|
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user