diff --git a/src/app/[name]/(Dialogs)/cart/hook/useCart.ts b/src/app/[name]/(Dialogs)/cart/hook/useCart.ts index 537cb86..2bd2095 100644 --- a/src/app/[name]/(Dialogs)/cart/hook/useCart.ts +++ b/src/app/[name]/(Dialogs)/cart/hook/useCart.ts @@ -53,7 +53,7 @@ export const useCart = () => { return {}; } return cartItems.data.items.reduce((acc, item) => { - acc[item.foodId] = { quantity: item.quantity }; + acc[item.productId] = { quantity: item.quantity }; return acc; }, {} as Record); } else { @@ -65,16 +65,14 @@ export const useCart = () => { return false; }; - // برای کاربران لاگین شده، slug از API می‌آید (در cartItems.data.restaurantId) + // برای کاربران لاگین شده، slug از API می‌آید (در cartItems.data.shopId) // برای کاربران لاگین نشده، slug از receiptStore می‌آید const cartSlug = useMemo(() => { - if (isSuccess && cartItems?.data?.restaurantId) { - // اگر از API آمده، می‌توانیم restaurantId را برگردانیم - // اما بهتر است slug را از URL بگیریم چون API ممکن است restaurantId را برگرداند نه slug + if (isSuccess && cartItems?.data?.shopId) { return currentSlug; } return slug; - }, [isSuccess, cartItems?.data?.restaurantId, currentSlug, slug]); + }, [isSuccess, cartItems?.data?.shopId, currentSlug, slug]); return { items: cartItemsMap, diff --git a/src/app/[name]/(Dialogs)/cart/hooks/useCartData.ts b/src/app/[name]/(Dialogs)/cart/hooks/useCartData.ts index 21f459f..c268351 100644 --- a/src/app/[name]/(Dialogs)/cart/hooks/useCartData.ts +++ b/src/app/[name]/(Dialogs)/cart/hooks/useCartData.ts @@ -28,7 +28,7 @@ export const useIncrementCart = () => { if (previousCart?.data && productsData?.data) { const existingItem = previousCart.data.items.find( - (item) => item.foodId === String(id) + (item) => item.productId === String(id) ); let updatedItems: CartItem[]; @@ -36,7 +36,7 @@ export const useIncrementCart = () => { if (existingItem) { updatedItems = previousCart.data.items.map((item) => { - if (item.foodId === String(id)) { + if (item.productId === String(id)) { return { ...item, quantity: item.quantity + 1, @@ -50,8 +50,8 @@ export const useIncrementCart = () => { const product = productsData.data.find((f) => String(f.id) === String(id)); if (product) { const newItem: CartItem = { - foodId: String(id), - foodTitle: product.title || product.name || "", + productId: String(id), + productTitle: product.title || product.name || "", quantity: 1, price: product.price, discount: product.discount || 0, @@ -116,7 +116,7 @@ export const useDecrementCart = () => { if (previousCart?.data) { const updatedItems = previousCart.data.items .map((item: CartItem) => { - if (item.foodId === String(id)) { + if (item.productId === String(id)) { const newQuantity = item.quantity - 1; if (newQuantity <= 0) { return null; diff --git a/src/app/[name]/(Dialogs)/cart/page.tsx b/src/app/[name]/(Dialogs)/cart/page.tsx index 5b43ace..9b42948 100644 --- a/src/app/[name]/(Dialogs)/cart/page.tsx +++ b/src/app/[name]/(Dialogs)/cart/page.tsx @@ -12,20 +12,13 @@ import { useGetProducts } from '@/app/[name]/(Main)/hooks/useMenuData'; import MenuItem from '@/components/listview/MenuItem'; import MenuItemRenderer from '@/components/listview/MenuItemRenderer'; import type { Product } from '@/app/[name]/(Main)/types/Types'; -import { useGetAbout } from '../../(Main)/about/hooks/useAboutData'; -import PagerModal from '@/components/pager/PagerModal'; -import Button from '@/components/button/PrimaryButton'; -import NotificationBellIcon from '@/components/icons/NotificationBellIcon'; const CartIndex = () => { const { t } = useTranslation('parallels', { keyPrefix: 'Cart' }); const router = useRouter(); const { clearCart, items } = useCart(); const [showClearConfirm, setShowClearConfirm] = React.useState(false); - const [showPagerModal, setShowPagerModal] = React.useState(false); const { data: productsResponse, isFetching } = useGetProducts(); - const { data: aboutData } = useGetAbout(); - const isPremium = aboutData?.data?.plan === 'premium'; const products = React.useMemo(() => productsResponse?.data ?? [], [productsResponse?.data]); const isLoading = isFetching && !products.length; @@ -102,36 +95,12 @@ const CartIndex = () => { ) : (
- {!isPremium && ( -
-
-
- -
-
-

- ثبت سفارش -

-

- برای ثبت سفارش، لطفاً گارسون را صدا کنید -

-
-
- -
- )} {cartProducts.map((product) => ( ))} - +
)} @@ -148,8 +117,6 @@ const CartIndex = () => { onClick={toggleClearConfirm} /> - - setShowPagerModal(false)} /> ); }; diff --git a/src/app/[name]/(Dialogs)/cart/service/CartService.ts b/src/app/[name]/(Dialogs)/cart/service/CartService.ts index 8e14a79..11625f7 100644 --- a/src/app/[name]/(Dialogs)/cart/service/CartService.ts +++ b/src/app/[name]/(Dialogs)/cart/service/CartService.ts @@ -7,12 +7,12 @@ export const bulkCart = async (params: BulkCartItem) => { }; export const increment = async (id: string | number) => { - const { data } = await api.post(`/public/cart/items/${id}/increment`); + const { data } = await api.post(`/public/cart/product/${id}/increment`); return data; }; export const decrement = async (id: string | number) => { - const { data } = await api.post(`/public/cart/items/${id}/decrement`); + const { data } = await api.post(`/public/cart/product/${id}/decrement`); return data; }; diff --git a/src/app/[name]/(Dialogs)/cart/types/Types.ts b/src/app/[name]/(Dialogs)/cart/types/Types.ts index 983506c..473275c 100644 --- a/src/app/[name]/(Dialogs)/cart/types/Types.ts +++ b/src/app/[name]/(Dialogs)/cart/types/Types.ts @@ -2,14 +2,14 @@ import { BaseResponse } from "@/app/[name]/(Main)/types/Types"; export type BulkCartItem = { items: { - foodId: string; + productId: string; quantity: number; }[]; }; export interface CartItem { - foodId: string; - foodTitle: string; + productId: string; + productTitle: string; quantity: number; price: number; discount: number; @@ -24,8 +24,8 @@ export interface Coupon { export interface CartData { userId: string; - restaurantId: string; - restaurantName: string; + shopId: string; + shopName: string; items: CartItem[]; deliveryFee: number; subTotal: number; diff --git a/src/components/map/CustomMap.tsx b/src/components/map/CustomMap.tsx index 9c04b03..c5d792a 100644 --- a/src/components/map/CustomMap.tsx +++ b/src/components/map/CustomMap.tsx @@ -289,7 +289,7 @@ const CustomMap: React.FC = ({ {isMapLoading && ( -
+
diff --git a/src/components/overlays/SplashScreen.tsx b/src/components/overlays/SplashScreen.tsx index 4963919..dd8b993 100644 --- a/src/components/overlays/SplashScreen.tsx +++ b/src/components/overlays/SplashScreen.tsx @@ -33,7 +33,7 @@ export default function SplashScreen({ initial={{ opacity: 1 }} exit={{ opacity: 0 }} transition={{ duration: 0.5 }} - className="fixed inset-0 z-[9999] flex flex-col items-center justify-center" + className="fixed inset-0 z-9999 flex flex-col items-center justify-center" > {/* دایره‌های تزئینی پس‌زمینه */}
diff --git a/src/config/const.ts b/src/config/const.ts index dd282e1..9990790 100644 --- a/src/config/const.ts +++ b/src/config/const.ts @@ -1,6 +1,6 @@ // export const API_BASE_URL = "https://dmenuplus-api.dev.danakcorp.com"; // export const API_BASE_URL = // "https://dmenuplus-api-production.dev.danakcorp.com"; -export const API_BASE_URL = "http://192.168.99.209:4000"; +export const API_BASE_URL = "http://10.86.60.88:4000"; export const TOKEN_NAME = "dmenu-t"; export const REFRESH_TOKEN_NAME = "dmenu-rt"; diff --git a/src/features/auth/components/StepOtp.tsx b/src/features/auth/components/StepOtp.tsx index fd31edf..10a24fb 100644 --- a/src/features/auth/components/StepOtp.tsx +++ b/src/features/auth/components/StepOtp.tsx @@ -55,12 +55,12 @@ const StepOtp = ({ phone, slug }: Props) => { const bulkCartItems = Object.entries(items).map(([key, value]) => { if (value.quantity > 0) { return { - foodId: key, + productId: key, quantity: value.quantity } } return undefined - }).filter((item): item is { foodId: string; quantity: number } => item !== undefined) + }).filter((item): item is { productId: string; quantity: number } => item !== undefined) if (!!bulkCartItems.length) { mutateBulkCart({ items: bulkCartItems }, { onSuccess: () => {