From 8b6f586636887fe7b4dacb41400266be47ebf84a Mon Sep 17 00:00:00 2001 From: hamid zarghami Date: Sun, 28 Jun 2026 16:07:52 +0330 Subject: [PATCH] redirect to single order --- .../[id]/components/SummarySection.tsx | 22 ++++++++++++++++--- src/locales/fa/parallels.json | 1 + 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/src/app/[name]/(Dialogs)/order/checkout/[id]/components/SummarySection.tsx b/src/app/[name]/(Dialogs)/order/checkout/[id]/components/SummarySection.tsx index cec63d0..f34e694 100644 --- a/src/app/[name]/(Dialogs)/order/checkout/[id]/components/SummarySection.tsx +++ b/src/app/[name]/(Dialogs)/order/checkout/[id]/components/SummarySection.tsx @@ -13,6 +13,8 @@ import { useGetCartItems, useSaveAllMethod } from '@/app/[name]/(Dialogs)/cart/h import { useGetProfile } from '@/app/[name]/(Profile)/profile/hooks/userProfileData'; import { useCallback, useMemo } from 'react'; import { useGetShipmentMethod } from '../../hooks/useOrderData'; +import { useGetProducts } from '@/app/[name]/(Main)/hooks/useMenuData'; +import { isVariablePricing } from '@/app/[name]/(Main)/types/Types'; import CartItemsList from '@/app/[name]/(Dialogs)/cart/components/CartItemsList'; import { useCartStore } from '@/app/[name]/(Dialogs)/cart/store/Store'; @@ -33,8 +35,22 @@ export const SummarySection = ({ cartModal, onToggleCartModal, deliveryType }: S const name = params.name as string; const { isSuccess } = useGetProfile(); const { data: cartData } = useGetCartItems(isSuccess); + const { data: productsResponse } = useGetProducts(); const { data: shipmentMethod } = useGetShipmentMethod(); + const hasVariablePricingItem = useMemo(() => { + const cartItems = cartData?.data?.items; + const products = productsResponse?.data; + if (!cartItems?.length || !products?.length) return false; + + return cartItems.some((item) => { + const product = products.find((p) => + p.variants?.some((v) => String(v.id) === String(item.variantId)) + ); + return product != null && isVariablePricing(product); + }); + }, [cartData?.data?.items, productsResponse?.data]); + const selectedDeliveryMethod = useMemo(() => { if (!shipmentMethod?.data || !deliveryType) return null; return shipmentMethod.data.find((item) => item.id === deliveryType); @@ -132,8 +148,8 @@ export const SummarySection = ({ cartModal, onToggleCartModal, deliveryType }: S onSuccess: (data) => { clear(); resetCart(); - if (data?.data?.paymentUrl) { - window.location.href = data?.data?.paymentUrl; + if (!hasVariablePricingItem && data?.data?.paymentUrl) { + window.location.href = data.data.paymentUrl; toast('در حال ریدایرکت به صفحه پرداخت...', 'success'); } else { window.location.href = `/${name}/order/track/${data?.data?.order?.id}`; @@ -193,7 +209,7 @@ export const SummarySection = ({ cartModal, onToggleCartModal, deliveryType }: S
{formatPrice(total)} تومان
diff --git a/src/locales/fa/parallels.json b/src/locales/fa/parallels.json index b3bd43a..7b8b401 100644 --- a/src/locales/fa/parallels.json +++ b/src/locales/fa/parallels.json @@ -111,6 +111,7 @@ "Title": "اقلام سفارش" }, "ButtonSubmit": "پرداخت", + "ButtonRegister": "ثبت", "PayableAmountLabel": "مبلغ قابل پرداخت" } }