direct login

This commit is contained in:
hamid zarghami
2026-01-05 10:47:46 +03:30
parent 48e91a508b
commit 7a7638ad9e
5 changed files with 102 additions and 9 deletions
+28 -6
View File
@@ -1,7 +1,7 @@
import { type FC } from 'react'
import { useParams } from 'react-router-dom'
import { useTranslation } from 'react-i18next'
import { useCreateDmenuRestaurant, useGetSubscription } from './hooks/useServiceData'
import { useCreateDmenuRestaurant, useDirectLogin, useGetSubscription } from './hooks/useServiceData'
import { useFormik } from 'formik'
import { DmenuCreateRestaurantType } from './types/ServiecTypes'
import * as Yup from 'yup'
@@ -13,11 +13,32 @@ 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 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<DmenuCreateRestaurantType>({
initialValues: {
@@ -27,6 +48,7 @@ export const ManageRestaurant: FC = () => {
phone: '',
userSubscriptionId: subscriptionId || ''
},
enableReinitialize: true,
validationSchema: Yup.object({
name: Yup.string().required(t('errors.required')),
slug: Yup.string().required(t('errors.required')),
@@ -44,12 +66,12 @@ export const ManageRestaurant: FC = () => {
}
createDmenuRestaurant.mutate(submitValues, {
onSuccess: () => {
toast(t('success'), 'success')
toast(t('success') || 'با موفقیت انجام شد', 'success')
formik.resetForm()
window.location.href = getSubscription?.data?.data?.userSubscription?.plan?.service?.link as string
handleDirectLogin()
},
onError: (error: ErrorType) => {
toast(error.response?.data?.error?.message[0], 'error')
toast(error.response?.data?.error?.message?.[0] || 'خطا در ایجاد رستوران', 'error')
}
})
}