base create order

This commit is contained in:
hamid zarghami
2026-06-23 10:12:56 +03:30
parent 6975e2d0b0
commit 223b1b5e8f
15 changed files with 1205 additions and 2 deletions
+81
View File
@@ -0,0 +1,81 @@
import { type FC } from 'react'
import { TickCircle } from 'iconsax-react'
import Button from '@/components/Button'
import { useCreateOrderForm } from './hooks/useCreateOrderForm'
import CreateOrderCustomerSection from './components/CreateOrderCustomerSection'
import CreateOrderItemsSection from './components/CreateOrderItemsSection'
import CreateOrderDeliverySection from './components/CreateOrderDeliverySection'
import CreateOrderSidebar from './components/CreateOrderSidebar'
const CreateOrder: FC = () => {
const {
formik,
foods,
deliveryMethods,
cashPaymentMethod,
selectedDeliveryMethod,
selectedPaymentMethod,
isCourierDelivery,
isCarDelivery,
isDineIn,
orderSummary,
addFoodToOrder,
updateItemQuantity,
removeItem,
isSubmitting,
} = useCreateOrderForm()
return (
<div className='mt-5'>
<div className='flex justify-between items-center'>
<h1 className='text-lg font-light'>ثبت سفارش جدید</h1>
<Button
className='w-fit px-6'
isloading={isSubmitting}
onClick={() => formik.handleSubmit()}
>
<div className='flex gap-2 items-center'>
<TickCircle size={20} color='#fff' />
<span>ثبت سفارش</span>
</div>
</Button>
</div>
<div className='flex flex-col xl:flex-row gap-7 mt-9'>
<div className='flex-1 min-w-0'>
<CreateOrderCustomerSection formik={formik} />
<div className='mt-8'>
<CreateOrderItemsSection
formik={formik}
foods={foods}
onAddFood={addFoodToOrder}
onUpdateQuantity={updateItemQuantity}
onRemoveItem={removeItem}
/>
</div>
<CreateOrderDeliverySection
formik={formik}
deliveryMethods={deliveryMethods}
cashPaymentMethod={cashPaymentMethod}
isCourierDelivery={isCourierDelivery}
isCarDelivery={isCarDelivery}
isDineIn={isDineIn}
/>
</div>
<div className='w-full xl:w-[330px] flex-shrink-0 xl:sticky xl:top-4 xl:self-start'>
<CreateOrderSidebar
formik={formik}
orderSummary={orderSummary}
selectedDeliveryMethod={selectedDeliveryMethod}
selectedPaymentMethod={selectedPaymentMethod}
/>
</div>
</div>
</div>
)
}
export default CreateOrder