order detail + change status in all state

This commit is contained in:
hamid zarghami
2025-12-20 14:33:19 +03:30
parent 566c4cb97b
commit de8815f0d8
13 changed files with 1065 additions and 300 deletions
@@ -0,0 +1,100 @@
import Button from '@/components/Button'
import type { FC } from 'react'
interface OrderActionsProps {
showVerifyCashPaymentButton: boolean
canConfirm: boolean
showSendToKitchenButton: boolean
showCancelButton: boolean
isPreparing: boolean
isCourierDelivery: boolean
isCanceled: boolean
isVerifyingPayment: boolean
isChangingStatus: boolean
onVerifyCashPayment: () => void
onConfirmOrder: () => void
onSendToKitchen: () => void
onDeliverToCourier: () => void
onOrderReady: () => void
onCancelOrder: () => void
}
const OrderActions: FC<OrderActionsProps> = ({
showVerifyCashPaymentButton,
canConfirm,
showSendToKitchenButton,
showCancelButton,
isPreparing,
isCourierDelivery,
isCanceled,
isVerifyingPayment,
isChangingStatus,
onVerifyCashPayment,
onConfirmOrder,
onSendToKitchen,
onDeliverToCourier,
onOrderReady,
onCancelOrder
}) => {
if (isCanceled) return null
return (
<div className='mt-6 flex flex-col gap-3'>
{showVerifyCashPaymentButton && (
<Button
label='تایید پرداخت'
onClick={onVerifyCashPayment}
isloading={isVerifyingPayment}
className='bg-green-600 hover:bg-green-700'
/>
)}
{canConfirm && (
<Button
label='تایید سفارش'
onClick={onConfirmOrder}
isloading={isChangingStatus}
/>
)}
{showSendToKitchenButton && (
<Button
label='ارسال به آشپزخانه'
onClick={onSendToKitchen}
isloading={isChangingStatus}
className='bg-orange-600 hover:bg-orange-700'
/>
)}
{isPreparing && isCourierDelivery && (
<Button
label='تحویل به پیک'
onClick={onDeliverToCourier}
isloading={isChangingStatus}
className='bg-blue-600 hover:bg-blue-700'
/>
)}
{isPreparing && !isCourierDelivery && (
<Button
label='غذا آماده است'
onClick={onOrderReady}
isloading={isChangingStatus}
className='bg-green-600 hover:bg-green-700'
/>
)}
{showCancelButton && (
<Button
label='لغو سفارش'
onClick={onCancelOrder}
isloading={isChangingStatus}
className='bg-red-600 hover:bg-red-700'
/>
)}
</div>
)
}
export default OrderActions