nest routes

This commit is contained in:
2025-10-27 18:56:59 +03:00
parent 2b400e51be
commit f7ab3349f7
2 changed files with 78 additions and 78 deletions

View File

@@ -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}>

View File

@@ -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,21 +58,18 @@ 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: "/:id/menu", path: "menu",
element: <PageWrapper children={<MenuPage />} />, element: <PageWrapper children={<MenuPage />} />,
errorElement: <ErrorPage />, errorElement: <ErrorPage />,
}, },
{ {
path: "/:id/cart", path: "cart",
element: ( element: (
<PageWrapper <PageWrapper
children={ children={
@@ -86,37 +83,36 @@ export const router = createHashRouter([
}, },
{ {
path: "/:id/address", path: "address",
element: <PageWrapper children={<AddressPage />} />, element: <PageWrapper children={<AddressPage />} />,
errorElement: <ErrorPage />, errorElement: <ErrorPage />,
}, },
{ {
path: "/:id/checkout", path: "checkout",
element: <PageWrapper children={<CheckoutPage />} />, element: <PageWrapper children={<CheckoutPage />} />,
errorElement: <ErrorPage />, errorElement: <ErrorPage />,
}, },
{ {
path: "/:id/split-bill", path: "split-bill",
element: <PageWrapper children={<SplitBillPage />} />, element: <PageWrapper children={<SplitBillPage />} />,
errorElement: <ErrorPage />, errorElement: <ErrorPage />,
}, },
{ {
path: "/:id/product/:productId", path: "product/:productId",
element: <PageWrapper children={<ProductDetailPage />} />, element: <PageWrapper children={<ProductDetailPage />} />,
errorElement: <ErrorPage />, errorElement: <ErrorPage />,
}, },
{ {
path: "/:id/search", path: "search",
element: <PageWrapper children={<SearchPage />} />, element: <PageWrapper children={<SearchPage />} />,
errorElement: <ErrorPage />, errorElement: <ErrorPage />,
}, },
{ {
path: "/:id/orders", path: "orders",
element: ( element: (
<PageWrapper <PageWrapper
children={ children={
@@ -128,24 +124,25 @@ export const router = createHashRouter([
), ),
errorElement: <ErrorPage />, errorElement: <ErrorPage />,
}, },
{ {
path: "/:id/login", path: "login",
element: <PageWrapper children={<LoginPage />} />, element: <PageWrapper children={<LoginPage />} />,
errorElement: <ErrorPage />, errorElement: <ErrorPage />,
}, },
{ {
path: "/:id/otp", path: "otp",
element: <PageWrapper children={<OtpPage />} />, element: <PageWrapper children={<OtpPage />} />,
errorElement: <ErrorPage />, errorElement: <ErrorPage />,
}, },
{ {
path: "/:id/order/:orderId", path: "order/:orderId",
element: <PageWrapper children={<OrderPage />} />, element: <PageWrapper children={<OrderPage />} />,
errorElement: <ErrorPage />, errorElement: <ErrorPage />,
}, },
],
},
{ {
path: "errors", path: "errors",