import InstagramIcon from "components/Icons/social/InstagramIcon";
import JIcon from "components/Icons/social/JIcon";
import SnapIcon from "components/Icons/social/SnapIcon";
import XIcon from "components/Icons/social/XIcon";
import { LanguageSwitch } from "components/LanguageSwitch/LanguageSwitch";
import ProText from "components/ProText";
import ProTitle from "components/ProTitle";
import { useAppDispatch, useAppSelector } from "redux/hooks";
import styles from "./restaurant.module.css";
import RestaurantServices from "./RestaurantServices";
// Import the Client Component for localStorage handling
import Ads1 from "components/Ads/Ads1";
import { OrderDetailsBottomSheet } from "components/CustomBottomSheet/orderDetailsSheet/OrderDetailsBottomSheet.tsx";
import { Loader } from "components/Loader/Loader";
import {
CART_STORAGE_KEYS,
updateOrderType,
} from "features/order/orderSlice.ts";
import useBreakPoint from "hooks/useBreakPoint";
import { useRestaurant } from "hooks/useRestaurant";
import useSwipeUp from "hooks/useSwipeUp";
import { OrderType } from "pages/checkout/hooks/types.ts";
import { useEffect, useState } from "react";
import { useTranslation } from "react-i18next";
import {
Link,
Outlet,
useLocation,
useParams,
useSearchParams,
} from "react-router-dom";
import { useGetRestaurantDetailsQuery } from "redux/api/others";
import LocalStorageHandler from "../menu/components/LocalStorageHandler";
const storedOrderType = localStorage.getItem(CART_STORAGE_KEYS.ORDER_TYPE);
export default function RestaurantPage() {
const dispatch = useAppDispatch();
const { t } = useTranslation();
const param = useParams();
const [searchParams] = useSearchParams();
const { pathname } = useLocation();
const { orderType } = useAppSelector(
(state) => state.order,
);
const { isRTL } = useAppSelector((state) => state.locale);
const { data: restaurant, isLoading } = useGetRestaurantDetailsQuery(
param.subdomain,
{
skip: !param.subdomain,
},
);
const [isOrderDetailsOpen, setIsOrderDetailsOpen] = useState(false);
// const { containerRef, handleTouchEnd, handleTouchStart } = useSwipeUp({
// swipeAction: () => setIsOrderDetailsOpen(true),
// isEnabled: isMobile && cartItems.length > 0,
// });
// Automatically load restaurant taxes when restaurant data is available
useRestaurant(restaurant);
useEffect(() => {
const urlOrderType = searchParams.get("orderType");
if (urlOrderType && urlOrderType !== orderType)
dispatch(updateOrderType(urlOrderType as OrderType));
else if (storedOrderType && !orderType)
dispatch(updateOrderType(storedOrderType as OrderType));
}, [searchParams, orderType, dispatch]);
if (isLoading) return