Files
web-menu-react-version/src/pages/menu/components/LocalStorageHandler.tsx
2025-11-09 22:55:38 +03:00

55 lines
1.5 KiB
TypeScript

"use client";
import { useEffect } from "react";
// Cart storage keys - same as in CartContext
const CART_STORAGE_KEYS = {
ITEMS: "fascano_cart_items",
SPECIAL_REQUEST: "fascano_special_request",
COUPON: "fascano_coupon",
TIP: "fascano_tip",
TABLES: "fascano_tables",
LOCATION: "fascano_location",
ROOM_DETAILS: "fascano_room_details",
OFFICE_DETAILS: "fascano_office_details",
GIFT_DETAILS: "fascano_gift_details",
ESTIMATE_TIME: "fascano_estimate_time",
ESTIMATE_TIME_DATE: "fascano_estimate_time_date",
ESTIMATE_TIME_TIME: "fascano_estimate_time_time",
COLLECTION_METHOD: "fascano_collection_method",
} as const;
const clearCartFromLocalStorage = () => {
// Clear all cart-related data from localStorage
Object.values(CART_STORAGE_KEYS).forEach((key) => {
localStorage.removeItem(key);
});
};
export default function LocalStorageHandler({
restaurantID,
restaurantName,
}: {
restaurantID: string;
restaurantName?: string;
}) {
useEffect(() => {
// Check if restaurant has changed
const currentStoredRestaurantID = localStorage.getItem("restaurantID");
// If there's a stored restaurant ID and it's different from the current one, clear the cart
if (
currentStoredRestaurantID &&
currentStoredRestaurantID !== restaurantID
) {
clearCartFromLocalStorage();
}
// Update localStorage with new values
localStorage.setItem("restaurantID", restaurantID);
// localStorage.setItem("orderType", orderType);
}, [restaurantID, restaurantName]);
return null;
}