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 Button from '../../components/Button' import Error from '../../components/Error' import { TickCircle } from 'iconsax-react' import { Helmet } from 'react-helmet-async' import GuideSlugImage from '../../assets/images/dmenu.png' 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: { slug: '', userSubscriptionId: subscriptionId || '' }, enableReinitialize: true, validationSchema: Yup.object({ slug: Yup.string() .required(t('errors.required')) .matches(/^[a-zA-Z0-9-]+$/, 'اسلاگ باید فقط شامل حروف انگلیسی، اعداد و خط تیره باشد'), userSubscriptionId: Yup.string().required(t('errors.required')) }), onSubmit: (values) => { createDmenuRestaurant.mutate(values, { 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') || 'لطفا اطلاعات رستوران خود را وارد کنید'}
dmenu.danakcorp.com/
{ formik.setFieldValue('slug', e.target.value) }} onBlur={formik.handleBlur} placeholder={t('restaurant.enter_slug') || 'اسلاگ را وارد کنید'} className='flex-1 h-10 text-black block px-4 text-xs border-0 focus:outline-none focus:ring-0 bg-transparent' dir='ltr' />
{formik.touched.slug && formik.errors.slug && ( )}
) }