change texts
This commit is contained in:
@@ -9,7 +9,7 @@ const ServiceSection: FC = () => {
|
|||||||
دی منو
|
دی منو
|
||||||
</div>
|
</div>
|
||||||
<div className='text-xs text-description'>
|
<div className='text-xs text-description'>
|
||||||
منو رستوران
|
منو فروشگاه
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
+5
-5
@@ -51,7 +51,7 @@
|
|||||||
"menu": "منو",
|
"menu": "منو",
|
||||||
"mainpage": "صفحه اصلی",
|
"mainpage": "صفحه اصلی",
|
||||||
"schedule": "زمان سفارش گیری",
|
"schedule": "زمان سفارش گیری",
|
||||||
"foods": "غذا ها",
|
"foods": "کالا ها",
|
||||||
"orders": "سفارشات",
|
"orders": "سفارشات",
|
||||||
"customers": "مشتریان",
|
"customers": "مشتریان",
|
||||||
"discount": "کد تخفیف",
|
"discount": "کد تخفیف",
|
||||||
@@ -71,7 +71,7 @@
|
|||||||
"statistics": "گزارشات"
|
"statistics": "گزارشات"
|
||||||
},
|
},
|
||||||
"shipment": {
|
"shipment": {
|
||||||
"dineIn": "سرو در رستوران",
|
"dineIn": "سرو در فروشگاه",
|
||||||
"customerPickup": "دریافت از محل",
|
"customerPickup": "دریافت از محل",
|
||||||
"deliveryCar": "تحویل به خودرو",
|
"deliveryCar": "تحویل به خودرو",
|
||||||
"deliveryCourier": "بیرون بر"
|
"deliveryCourier": "بیرون بر"
|
||||||
@@ -93,8 +93,8 @@
|
|||||||
"slider_deleted": "اسلایدر با موفقیت حذف شد"
|
"slider_deleted": "اسلایدر با موفقیت حذف شد"
|
||||||
},
|
},
|
||||||
"submenu": {
|
"submenu": {
|
||||||
"foods_list": "لیست غذا ها",
|
"foods_list": "لیست کالا ها",
|
||||||
"add_food": "افزودن غذا",
|
"add_food": "افزودن کالا",
|
||||||
"categories": "دسته بندی ها",
|
"categories": "دسته بندی ها",
|
||||||
"orders_list": "لیست سفارشات",
|
"orders_list": "لیست سفارشات",
|
||||||
"add_order": "افزودن سفارش",
|
"add_order": "افزودن سفارش",
|
||||||
@@ -236,7 +236,7 @@
|
|||||||
"footer": {
|
"footer": {
|
||||||
"home": "صفحه اصلی",
|
"home": "صفحه اصلی",
|
||||||
"customers": "مشتریان",
|
"customers": "مشتریان",
|
||||||
"foods": "غذا ها",
|
"foods": "کالا ها",
|
||||||
"announcements": "اطلاعیه ها",
|
"announcements": "اطلاعیه ها",
|
||||||
"orders": "سفارشات"
|
"orders": "سفارشات"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -13,7 +13,7 @@ const CommentsDetails: FC = () => {
|
|||||||
const [selectedCategories, setSelectedCategories] = useState<string[]>([])
|
const [selectedCategories, setSelectedCategories] = useState<string[]>([])
|
||||||
|
|
||||||
const allFoods = ['پیتزا پپرونی', 'سالاد سزار', 'پاستا', 'همبرگر', 'سوشی']
|
const allFoods = ['پیتزا پپرونی', 'سالاد سزار', 'پاستا', 'همبرگر', 'سوشی']
|
||||||
const allCategories = ['پیش غذا', 'غذای اصلی', 'دسر', 'نوشیدنی', 'سالاد']
|
const allCategories = ['پیش کالا', 'کالای اصلی', 'دسر', 'نوشیدنی', 'سالاد']
|
||||||
|
|
||||||
const foods = ['همه', ...allFoods]
|
const foods = ['همه', ...allFoods]
|
||||||
const categories = ['همه', ...allCategories]
|
const categories = ['همه', ...allCategories]
|
||||||
@@ -88,7 +88,7 @@ const CommentsDetails: FC = () => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Input
|
<Input
|
||||||
label='غذا ها'
|
label='کالا ها'
|
||||||
value='پیتزا پپرونی ، سالاد سزار'
|
value='پیتزا پپرونی ، سالاد سزار'
|
||||||
readOnly
|
readOnly
|
||||||
/>
|
/>
|
||||||
@@ -123,7 +123,7 @@ const CommentsDetails: FC = () => {
|
|||||||
<div className='text-sm mb-4'>وضعیت نمایش</div>
|
<div className='text-sm mb-4'>وضعیت نمایش</div>
|
||||||
|
|
||||||
<div className='mb-6 border border-border rounded-xl p-4'>
|
<div className='mb-6 border border-border rounded-xl p-4'>
|
||||||
<div className='text-xs mb-3'>نمایش در غذاهای</div>
|
<div className='text-xs mb-3'>نمایش در کالاهای</div>
|
||||||
<Input
|
<Input
|
||||||
// variant='search'
|
// variant='search'
|
||||||
placeholder='جستجو'
|
placeholder='جستجو'
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ const CommentsList: FC = () => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'food',
|
key: 'food',
|
||||||
title: 'غذا',
|
title: 'کالا',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'date',
|
key: 'date',
|
||||||
@@ -142,7 +142,7 @@ const CommentsList: FC = () => {
|
|||||||
number: '۱۲۳۳۷',
|
number: '۱۲۳۳۷',
|
||||||
customerName: 'علی کریمی',
|
customerName: 'علی کریمی',
|
||||||
strengths: 'سرویس سریع',
|
strengths: 'سرویس سریع',
|
||||||
weaknesses: 'کم بودن حجم غذا',
|
weaknesses: 'کم بودن حجم کالا',
|
||||||
food: 'پاستا کربونارا',
|
food: 'پاستا کربونارا',
|
||||||
date: '2024-11-04',
|
date: '2024-11-04',
|
||||||
isDisplayed: true,
|
isDisplayed: true,
|
||||||
@@ -161,7 +161,7 @@ const CommentsList: FC = () => {
|
|||||||
id: 6,
|
id: 6,
|
||||||
number: '۱۲۳۳۹',
|
number: '۱۲۳۳۹',
|
||||||
customerName: 'حسن نوری',
|
customerName: 'حسن نوری',
|
||||||
strengths: 'ارزش غذایی مناسب',
|
strengths: 'ارزش کالایی مناسب',
|
||||||
weaknesses: 'بوی نامطبوع',
|
weaknesses: 'بوی نامطبوع',
|
||||||
food: 'کباب ترکی',
|
food: 'کباب ترکی',
|
||||||
date: '2024-11-06',
|
date: '2024-11-06',
|
||||||
|
|||||||
@@ -48,7 +48,7 @@ const FoodSelector: FC<FoodSelectorProps> = ({ formik, foods }) => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<div className='text-sm mb-3'>غذاهایی که شامل تخفیف میشوند</div>
|
<div className='text-sm mb-3'>کالاهایی که شامل تخفیف میشوند</div>
|
||||||
<div className='mb-6 border border-border rounded-xl p-4'>
|
<div className='mb-6 border border-border rounded-xl p-4'>
|
||||||
<Input
|
<Input
|
||||||
variant='search'
|
variant='search'
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ const CategoryFood: FC = () => {
|
|||||||
<div className="flex flex-col lg:flex-row gap-4 lg:gap-6 p-4 lg:p-6">
|
<div className="flex flex-col lg:flex-row gap-4 lg:gap-6 p-4 lg:p-6">
|
||||||
<div className="flex-1 w-full lg:w-auto">
|
<div className="flex-1 w-full lg:w-auto">
|
||||||
<div className="flex items-center justify-between mb-4 lg:mb-6">
|
<div className="flex items-center justify-between mb-4 lg:mb-6">
|
||||||
<h1 className="text-base lg:text-lg font-light">دسته بندی غذا</h1>
|
<h1 className="text-base lg:text-lg font-light">دسته بندی کالا</h1>
|
||||||
</div>
|
</div>
|
||||||
<div className="mb-4 lg:mb-0">
|
<div className="mb-4 lg:mb-0">
|
||||||
<Filters
|
<Filters
|
||||||
|
|||||||
@@ -53,7 +53,7 @@ const CreateFood: FC = () => {
|
|||||||
order: 0
|
order: 0
|
||||||
},
|
},
|
||||||
validationSchema: Yup.object().shape({
|
validationSchema: Yup.object().shape({
|
||||||
title: Yup.string().required('نام غذا الزامی است'),
|
title: Yup.string().required('نام کالا الزامی است'),
|
||||||
categoryId: Yup.string().required('دستهبندی الزامی است'),
|
categoryId: Yup.string().required('دستهبندی الزامی است'),
|
||||||
price: Yup.number().required('قیمت الزامی است').min(0, 'قیمت باید مثبت باشد'),
|
price: Yup.number().required('قیمت الزامی است').min(0, 'قیمت باید مثبت باشد'),
|
||||||
prepareTime: Yup.number().required('زمان آمادهسازی الزامی است').min(0, 'زمان آمادهسازی باید مثبت باشد'),
|
prepareTime: Yup.number().required('زمان آمادهسازی الزامی است').min(0, 'زمان آمادهسازی باید مثبت باشد'),
|
||||||
@@ -75,11 +75,11 @@ const CreateFood: FC = () => {
|
|||||||
|
|
||||||
createFood(foodData, {
|
createFood(foodData, {
|
||||||
onSuccess: () => {
|
onSuccess: () => {
|
||||||
toast.success('غذا با موفقیت ایجاد شد')
|
toast.success('کالا با موفقیت ایجاد شد')
|
||||||
window.location.href = Pages.foods.list
|
window.location.href = Pages.foods.list
|
||||||
},
|
},
|
||||||
onError: (error: ErrorType) => {
|
onError: (error: ErrorType) => {
|
||||||
toast.error(error?.response?.data?.error?.message[0] || 'خطا در ایجاد غذا')
|
toast.error(error?.response?.data?.error?.message[0] || 'خطا در ایجاد کالا')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -104,7 +104,7 @@ const CreateFood: FC = () => {
|
|||||||
<div className='w-full mt-4'>
|
<div className='w-full mt-4'>
|
||||||
<div className='flex flex-col sm:flex-row w-full justify-between items-start sm:items-center gap-4'>
|
<div className='flex flex-col sm:flex-row w-full justify-between items-start sm:items-center gap-4'>
|
||||||
<div className='text-lg font-light'>
|
<div className='text-lg font-light'>
|
||||||
غذای جدید
|
کالای جدید
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<Button
|
<Button
|
||||||
@@ -114,7 +114,7 @@ const CreateFood: FC = () => {
|
|||||||
>
|
>
|
||||||
<div className='flex gap-2 items-center'>
|
<div className='flex gap-2 items-center'>
|
||||||
<TickCircle className='size-5' color='white' />
|
<TickCircle className='size-5' color='white' />
|
||||||
<div>ثبت غذا</div>
|
<div>ثبت کالا</div>
|
||||||
</div>
|
</div>
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
@@ -124,7 +124,7 @@ const CreateFood: FC = () => {
|
|||||||
<div className='flex-1'>
|
<div className='flex-1'>
|
||||||
<div className='bg-white py-6 sm:py-8 xl:px-10 px-4 rounded-3xl'>
|
<div className='bg-white py-6 sm:py-8 xl:px-10 px-4 rounded-3xl'>
|
||||||
<Input
|
<Input
|
||||||
label='نام غذا'
|
label='نام کالا'
|
||||||
name='title'
|
name='title'
|
||||||
placeholder=''
|
placeholder=''
|
||||||
value={formik.values.title}
|
value={formik.values.title}
|
||||||
@@ -195,7 +195,7 @@ const CreateFood: FC = () => {
|
|||||||
<div className='mt-5'>
|
<div className='mt-5'>
|
||||||
<Textarea
|
<Textarea
|
||||||
name='desc'
|
name='desc'
|
||||||
label='توضیحات غذا'
|
label='توضیحات کالا'
|
||||||
placeholder=''
|
placeholder=''
|
||||||
value={formik.values.desc}
|
value={formik.values.desc}
|
||||||
onChange={formik.handleChange}
|
onChange={formik.handleChange}
|
||||||
@@ -216,7 +216,7 @@ const CreateFood: FC = () => {
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className='mt-5'>
|
<div className='mt-5'>
|
||||||
<div className='text-sm mb-2'>محتوای غذا</div>
|
<div className='text-sm mb-2'>محتوای کالا</div>
|
||||||
<div className='space-y-2'>
|
<div className='space-y-2'>
|
||||||
{formik.values.content.map((item, index) => (
|
{formik.values.content.map((item, index) => (
|
||||||
<div key={index} className='flex gap-2 items-center'>
|
<div key={index} className='flex gap-2 items-center'>
|
||||||
|
|||||||
@@ -36,14 +36,14 @@ const FoodsList: FC = () => {
|
|||||||
return (
|
return (
|
||||||
<div className='mt-5'>
|
<div className='mt-5'>
|
||||||
<div className='flex justify-between items-center'>
|
<div className='flex justify-between items-center'>
|
||||||
<h1 className='text-lg font-light'>لیست غذاها</h1>
|
<h1 className='text-lg font-light'>لیست کالاها</h1>
|
||||||
<Link
|
<Link
|
||||||
to={Pages.foods.add}
|
to={Pages.foods.add}
|
||||||
>
|
>
|
||||||
<Button className='w-fit px-6'>
|
<Button className='w-fit px-6'>
|
||||||
<div className='flex gap-2 items-center'>
|
<div className='flex gap-2 items-center'>
|
||||||
<Add color='#fff' size={20} />
|
<Add color='#fff' size={20} />
|
||||||
<span>افزودن غذا</span>
|
<span>افزودن کالا</span>
|
||||||
</div>
|
</div>
|
||||||
</Button>
|
</Button>
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ const UpdateFood: FC = () => {
|
|||||||
order: 0
|
order: 0
|
||||||
},
|
},
|
||||||
validationSchema: Yup.object().shape({
|
validationSchema: Yup.object().shape({
|
||||||
title: Yup.string().required('نام غذا الزامی است'),
|
title: Yup.string().required('نام کالا الزامی است'),
|
||||||
categoryId: Yup.string().required('دستهبندی الزامی است'),
|
categoryId: Yup.string().required('دستهبندی الزامی است'),
|
||||||
price: Yup.number().required('قیمت الزامی است').min(0, 'قیمت باید مثبت باشد'),
|
price: Yup.number().required('قیمت الزامی است').min(0, 'قیمت باید مثبت باشد'),
|
||||||
prepareTime: Yup.number().required('زمان آمادهسازی الزامی است').min(0, 'زمان آمادهسازی باید مثبت باشد'),
|
prepareTime: Yup.number().required('زمان آمادهسازی الزامی است').min(0, 'زمان آمادهسازی باید مثبت باشد'),
|
||||||
@@ -68,7 +68,7 @@ const UpdateFood: FC = () => {
|
|||||||
}),
|
}),
|
||||||
onSubmit: (values) => {
|
onSubmit: (values) => {
|
||||||
if (!id) {
|
if (!id) {
|
||||||
toast.error('شناسه غذا یافت نشد')
|
toast.error('شناسه کالا یافت نشد')
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,7 +84,7 @@ const UpdateFood: FC = () => {
|
|||||||
|
|
||||||
updateFood({ id, params: foodData }, {
|
updateFood({ id, params: foodData }, {
|
||||||
onSuccess: () => {
|
onSuccess: () => {
|
||||||
toast.success('غذا با موفقیت بهروزرسانی شد')
|
toast.success('کالا با موفقیت بهروزرسانی شد')
|
||||||
navigate(Pages.foods.list)
|
navigate(Pages.foods.list)
|
||||||
},
|
},
|
||||||
onError: (error: ErrorType) => {
|
onError: (error: ErrorType) => {
|
||||||
@@ -152,7 +152,7 @@ const UpdateFood: FC = () => {
|
|||||||
if (!food) {
|
if (!food) {
|
||||||
return (
|
return (
|
||||||
<div className='w-full mt-4 flex justify-center items-center'>
|
<div className='w-full mt-4 flex justify-center items-center'>
|
||||||
<div>غذا یافت نشد</div>
|
<div>کالا یافت نشد</div>
|
||||||
</div>
|
</div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
@@ -161,7 +161,7 @@ const UpdateFood: FC = () => {
|
|||||||
<div className='w-full mt-4'>
|
<div className='w-full mt-4'>
|
||||||
<div className='flex flex-col sm:flex-row w-full justify-between items-start sm:items-center gap-4'>
|
<div className='flex flex-col sm:flex-row w-full justify-between items-start sm:items-center gap-4'>
|
||||||
<div className='text-lg font-light'>
|
<div className='text-lg font-light'>
|
||||||
ویرایش غذا
|
ویرایش کالا
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<Button
|
<Button
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ const BasicInfoSection: FC<BasicInfoSectionProps> = ({ formik, categories }) =>
|
|||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Input
|
<Input
|
||||||
label='نام غذا'
|
label='نام کالا'
|
||||||
name='title'
|
name='title'
|
||||||
placeholder=''
|
placeholder=''
|
||||||
value={formik.values.title}
|
value={formik.values.title}
|
||||||
@@ -85,7 +85,7 @@ const BasicInfoSection: FC<BasicInfoSectionProps> = ({ formik, categories }) =>
|
|||||||
<div className='mt-5'>
|
<div className='mt-5'>
|
||||||
<Textarea
|
<Textarea
|
||||||
name='desc'
|
name='desc'
|
||||||
label='توضیحات غذا'
|
label='توضیحات کالا'
|
||||||
placeholder=''
|
placeholder=''
|
||||||
value={formik.values.desc}
|
value={formik.values.desc}
|
||||||
onChange={formik.handleChange}
|
onChange={formik.handleChange}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ const CreateFoodSidebar: FC<Props> = (props: Props) => {
|
|||||||
|
|
||||||
<div>
|
<div>
|
||||||
<div className='flex items-center justify-between'>
|
<div className='flex items-center justify-between'>
|
||||||
<div>وضعیت غذا</div>
|
<div>وضعیت کالا</div>
|
||||||
<SwitchComponent
|
<SwitchComponent
|
||||||
active={props.isActive}
|
active={props.isActive}
|
||||||
onChange={(value) => props.onChangeActive(value)}
|
onChange={(value) => props.onChangeActive(value)}
|
||||||
@@ -34,15 +34,15 @@ const CreateFoodSidebar: FC<Props> = (props: Props) => {
|
|||||||
onCheckedChange={(checked) => props.onChangeSpecial(checked as boolean)}
|
onCheckedChange={(checked) => props.onChangeSpecial(checked as boolean)}
|
||||||
/>
|
/>
|
||||||
<label className='text-xs leading-tight cursor-pointer'>
|
<label className='text-xs leading-tight cursor-pointer'>
|
||||||
این غذا پیشنهاد ویژه رستوران هست.
|
این کالا پیشنهاد ویژه فروشگاه هست.
|
||||||
</label>
|
</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div className='mt-8'>
|
<div className='mt-8'>
|
||||||
<div className='text-sm mb-2'>تصاویر غذا</div>
|
<div className='text-sm mb-2'>تصاویر کالا</div>
|
||||||
<UploadBoxDraggble
|
<UploadBoxDraggble
|
||||||
label='تصویر غذا را آپلود کنید'
|
label='تصویر کالا را آپلود کنید'
|
||||||
isMultiple={true}
|
isMultiple={true}
|
||||||
onChange={(files: File[]) => props.onChangeImages(files)}
|
onChange={(files: File[]) => props.onChangeImages(files)}
|
||||||
preview={props.existingImages}
|
preview={props.existingImages}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ const FoodContentSection: FC<FoodContentSectionProps> = ({ formik }) => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='mt-5'>
|
<div className='mt-5'>
|
||||||
<div className='text-sm mb-2'>محتوای غذا</div>
|
<div className='text-sm mb-2'>محتوای کالا</div>
|
||||||
<div className='space-y-2'>
|
<div className='space-y-2'>
|
||||||
{formik.values.content.map((item, index) => (
|
{formik.values.content.map((item, index) => (
|
||||||
<div key={index} className='flex gap-2 items-center'>
|
<div key={index} className='flex gap-2 items-center'>
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ export const getFoodTableColumns = ({ onDelete, isDeleting }: GetFoodTableColumn
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'title',
|
key: 'title',
|
||||||
title: 'نام غذا',
|
title: 'نام کالا',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'categories',
|
key: 'categories',
|
||||||
|
|||||||
@@ -28,7 +28,7 @@ const MealTimesSection: FC<MealTimesSectionProps> = ({ formik }) => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='mt-6'>
|
<div className='mt-6'>
|
||||||
<div className='text-sm mb-3'>وعدههای غذایی</div>
|
<div className='text-sm mb-3'>وعدههای کالایی</div>
|
||||||
<div className='text-xs text-gray-500 mb-3 bg-gray-50 p-3 rounded-lg border border-gray-200'>
|
<div className='text-xs text-gray-500 mb-3 bg-gray-50 p-3 rounded-lg border border-gray-200'>
|
||||||
<div>ساعات 6 تا 11 صبح :صبحانه</div>
|
<div>ساعات 6 تا 11 صبح :صبحانه</div>
|
||||||
<div>11 تا 15 ناهار</div>
|
<div>11 تا 15 ناهار</div>
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ const PaymentInfo: FC<PaymentInfoProps> = ({
|
|||||||
|
|
||||||
const getDeliveryMethodText = (method: string): string => {
|
const getDeliveryMethodText = (method: string): string => {
|
||||||
const methodMap: Record<string, string> = {
|
const methodMap: Record<string, string> = {
|
||||||
[DeliveryMethodEnum.DineIn]: 'سرو در رستوران',
|
[DeliveryMethodEnum.DineIn]: 'سرو در فروشگاه',
|
||||||
[DeliveryMethodEnum.CustomerPickup]: 'دریافت از محل',
|
[DeliveryMethodEnum.CustomerPickup]: 'دریافت از محل',
|
||||||
[DeliveryMethodEnum.DeliveryCar]: 'تحویل به خودرو',
|
[DeliveryMethodEnum.DeliveryCar]: 'تحویل به خودرو',
|
||||||
[DeliveryMethodEnum.DeliveryCourier]: 'بیرون بر',
|
[DeliveryMethodEnum.DeliveryCourier]: 'بیرون بر',
|
||||||
|
|||||||
@@ -173,11 +173,11 @@ const DetailReview: FC = () => {
|
|||||||
<div className='pt-6 border-t border-border'>
|
<div className='pt-6 border-t border-border'>
|
||||||
<div className='flex items-center gap-2 mb-4'>
|
<div className='flex items-center gap-2 mb-4'>
|
||||||
<ShoppingCart size={20} color="#8C90A3" />
|
<ShoppingCart size={20} color="#8C90A3" />
|
||||||
<span className='text-sm font-medium'>اطلاعات غذا</span>
|
<span className='text-sm font-medium'>اطلاعات کالا</span>
|
||||||
</div>
|
</div>
|
||||||
<div className='grid grid-cols-2 gap-4'>
|
<div className='grid grid-cols-2 gap-4'>
|
||||||
<Input
|
<Input
|
||||||
label='عنوان غذا'
|
label='عنوان کالا'
|
||||||
value={review.food.title}
|
value={review.food.title}
|
||||||
readOnly
|
readOnly
|
||||||
/>
|
/>
|
||||||
@@ -187,7 +187,7 @@ const DetailReview: FC = () => {
|
|||||||
readOnly
|
readOnly
|
||||||
/>
|
/>
|
||||||
<Input
|
<Input
|
||||||
label='امتیاز غذا'
|
label='امتیاز کالا'
|
||||||
value={formatFaNumber(review.food.rate)}
|
value={formatFaNumber(review.food.rate)}
|
||||||
readOnly
|
readOnly
|
||||||
/>
|
/>
|
||||||
@@ -199,13 +199,13 @@ const DetailReview: FC = () => {
|
|||||||
</div>
|
</div>
|
||||||
{review.food.images && review.food.images.length > 0 && (
|
{review.food.images && review.food.images.length > 0 && (
|
||||||
<div className='mt-4'>
|
<div className='mt-4'>
|
||||||
<span className='text-sm mb-2 block'>تصاویر غذا</span>
|
<span className='text-sm mb-2 block'>تصاویر کالا</span>
|
||||||
<div className='flex gap-3 flex-wrap'>
|
<div className='flex gap-3 flex-wrap'>
|
||||||
{review.food.images.map((image, index) => (
|
{review.food.images.map((image, index) => (
|
||||||
<img
|
<img
|
||||||
key={index}
|
key={index}
|
||||||
src={image}
|
src={image}
|
||||||
alt={`غذا ${index + 1}`}
|
alt={`کالا ${index + 1}`}
|
||||||
className='w-24 h-24 object-cover rounded-xl border border-border'
|
className='w-24 h-24 object-cover rounded-xl border border-border'
|
||||||
/>
|
/>
|
||||||
))}
|
))}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ export const useReviewFiltersFields = (): FieldType[] => {
|
|||||||
{
|
{
|
||||||
type: 'input',
|
type: 'input',
|
||||||
name: 'search',
|
name: 'search',
|
||||||
placeholder: 'جستجو (نام کاربر یا غذا)',
|
placeholder: 'جستجو (نام کاربر یا کالا)',
|
||||||
},
|
},
|
||||||
], [])
|
], [])
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ export const getReviewTableColumns = (): ColumnType<Review>[] => {
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
key: 'food',
|
key: 'food',
|
||||||
title: 'غذا',
|
title: 'کالا',
|
||||||
render: (item: Review) => {
|
render: (item: Review) => {
|
||||||
return item.food.title || '-'
|
return item.food.title || '-'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ import { extractErrorMessage } from '@/config/func'
|
|||||||
import ServiceAreaPicker from './components/ServiceAreaPicker'
|
import ServiceAreaPicker from './components/ServiceAreaPicker'
|
||||||
|
|
||||||
const validationSchema = yup.object({
|
const validationSchema = yup.object({
|
||||||
name: yup.string().required('نام رستوران الزامی است'),
|
name: yup.string().required('نام فروشگاه الزامی است'),
|
||||||
menuColor: yup.string().required('رنگ منو الزامی است'),
|
menuColor: yup.string().required('رنگ منو الزامی است'),
|
||||||
phone: yup.string().required('شماره تماس الزامی است'),
|
phone: yup.string().required('شماره تماس الزامی است'),
|
||||||
instagram: yup.string().url('لینک اینستاگرام معتبر نیست').nullable(),
|
instagram: yup.string().url('لینک اینستاگرام معتبر نیست').nullable(),
|
||||||
@@ -123,7 +123,7 @@ const GeneralSettings: FC = () => {
|
|||||||
<form onSubmit={formik.handleSubmit}>
|
<form onSubmit={formik.handleSubmit}>
|
||||||
<div className='mt-8 rowTwoInput'>
|
<div className='mt-8 rowTwoInput'>
|
||||||
<Input
|
<Input
|
||||||
label='نام رستوران'
|
label='نام فروشگاه'
|
||||||
name='name'
|
name='name'
|
||||||
value={formik.values.name}
|
value={formik.values.name}
|
||||||
onChange={formik.handleChange}
|
onChange={formik.handleChange}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ const Statistics: FC = () => {
|
|||||||
<div className='grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 mb-6'>
|
<div className='grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4 mb-6'>
|
||||||
<StatCard
|
<StatCard
|
||||||
icon={<Category size={24} color='#6B7FED' />}
|
icon={<Category size={24} color='#6B7FED' />}
|
||||||
title='غذاها'
|
title='کالاها'
|
||||||
value={`${formatFaNumber(stats?.activeFoods)} عددی`}
|
value={`${formatFaNumber(stats?.activeFoods)} عددی`}
|
||||||
color='#6B7FED'
|
color='#6B7FED'
|
||||||
/>
|
/>
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ const FoodSalesChart: FC = () => {
|
|||||||
|
|
||||||
return (
|
return (
|
||||||
<div className='bg-white h-fit rounded-3xl p-6 shadow-sm'>
|
<div className='bg-white h-fit rounded-3xl p-6 shadow-sm'>
|
||||||
<h3 className='text-base font-medium mb-6'>میزان فروش غذاها</h3>
|
<h3 className='text-base font-medium mb-6'>میزان فروش کالاها</h3>
|
||||||
|
|
||||||
{/* Filters */}
|
{/* Filters */}
|
||||||
{/* <div className='flex items-end gap-2 mb-4'>
|
{/* <div className='flex items-end gap-2 mb-4'>
|
||||||
|
|||||||
Reference in New Issue
Block a user