import { type FC } from 'react' import { useParams } from 'react-router-dom' import { useTranslation } from 'react-i18next' import { useCreateDmenuRestaurant, useDirectLogin, useGetSubscription } from './hooks/useServiceData' import { useFormik } from 'formik' import { DmenuCreateRestaurantType } from './types/ServiecTypes' import * as Yup from 'yup' import { toast } from '../../components/Toast' import { ErrorType } from '../../helpers/types' import Input from '../../components/Input' import Button from '../../components/Button' import { TickCircle } from 'iconsax-react' import { Helmet } from 'react-helmet-async' export const ManageRestaurant: FC = () => { const { t } = useTranslation('global') const { subscriptionId } = useParams() const createDmenuRestaurant = useCreateDmenuRestaurant() const getSubscription = useGetSubscription(subscriptionId || '') const { mutate: directLogin } = useDirectLogin() const handleDirectLogin = () => { if (!subscriptionId) { toast(t('errors.required') || 'شناسه اشتراک یافت نشد', 'error') return } directLogin(subscriptionId, { onSuccess: (data) => { const serviceLink = getSubscription?.data?.data?.userSubscription?.plan?.service?.link if (serviceLink && data?.data?.tokens?.accessToken?.token && data?.data?.tokens?.refreshToken?.token) { window.location.href = `${serviceLink}?token=${data.data.tokens.accessToken.token}&refreshToken=${data.data.tokens.refreshToken.token}` } else { toast('خطا در دریافت اطلاعات سرویس', 'error') } }, onError: (error: ErrorType) => { toast(error.response?.data?.error?.message?.[0] || 'خطا در ورود مستقیم', 'error') } }) } const formik = useFormik({ initialValues: { name: '', slug: '', establishedYear: 0, phone: '', userSubscriptionId: subscriptionId || '' }, enableReinitialize: true, validationSchema: Yup.object({ name: Yup.string().required(t('errors.required')), slug: Yup.string().required(t('errors.required')), establishedYear: Yup.number() .required(t('errors.required')) .min(1300, 'سال باید حداقل ۱۳۰۰ باشد') .max(1500, 'سال باید حداکثر ۱۵۰۰ باشد'), phone: Yup.string().required(t('errors.required')), userSubscriptionId: Yup.string().required(t('errors.required')) }), onSubmit: (values) => { const submitValues = { ...values, establishedYear: Number(values.establishedYear) } createDmenuRestaurant.mutate(submitValues, { onSuccess: () => { toast(t('success') || 'با موفقیت انجام شد', 'success') formik.resetForm() handleDirectLogin() }, onError: (error: ErrorType) => { toast(error.response?.data?.error?.message?.[0] || 'خطا در ایجاد رستوران', 'error') } }) } }) return ( <> {t('restaurant.manage')}
{t('restaurant.manage') || 'مدیریت رستوران'}
{t('restaurant.restaurant_info') || 'اطلاعات رستوران'}
{t('restaurant.enter_restaurant_info') || 'لطفا اطلاعات رستوران خود را وارد کنید'}
) }