dpage login
deploy to danak / build_and_deploy (push) Has been cancelled

This commit is contained in:
hamid zarghami
2026-06-13 09:39:12 +03:30
parent 6bc8a24683
commit 1ce6f3387a
3 changed files with 22 additions and 3 deletions
+6 -3
View File
@@ -7,7 +7,7 @@ import { useTranslation } from 'react-i18next'
import { ItemServiceType } from '../pages/service/types/ServiecTypes'
import moment from 'moment-jalaali'
import { NumberFormat } from '../config/func'
import { useDirectLogin, useDirectLoginDkala, useGetDmenuSubscription, useGetDkalaSubscription } from '../pages/service/hooks/useServiceData'
import { useDirectLogin, useDirectLoginDkala, useDirectLoginDpage, useGetDmenuSubscription, useGetDkalaSubscription } from '../pages/service/hooks/useServiceData'
import { toast } from './Toast'
import { ErrorType } from '../helpers/types'
@@ -32,7 +32,9 @@ const ServiceItem: FC<Props> = (props: Props) => {
const isDmenu = item?.slug === 'Dmenu'
const isDkala = item?.slug === 'Dkala'
const isDpage = item?.slug === 'Dpage'
const isDmenuOrDkala = isDmenu || isDkala
const needsDirectLogin = isDmenuOrDkala || isDpage
const { data: dmenuSubscription, isPending: isDmenuPending, isError: isDmenuError } = useGetDmenuSubscription(isChecked && isDmenu && props.isLinkPanel ? props.subscriptionId! : '')
const { data: dkalaSubscription, isPending: isDkalaPending, isError: isDkalaError } = useGetDkalaSubscription(isChecked && isDkala && props.isLinkPanel ? props.subscriptionId! : '')
const subscription = isDmenu ? dmenuSubscription : dkalaSubscription
@@ -40,6 +42,7 @@ const ServiceItem: FC<Props> = (props: Props) => {
const isError = isDmenu ? isDmenuError : isDkalaError
const { mutate: directLogin } = useDirectLogin()
const { mutate: directLoginDkala } = useDirectLoginDkala()
const { mutate: directLoginDpage } = useDirectLoginDpage()
const getRemainingDays = (endDate: string): number => {
const now = moment()
@@ -70,14 +73,14 @@ const ServiceItem: FC<Props> = (props: Props) => {
}
const handleDirectLogin = () => {
if (!isDmenuOrDkala) {
if (!needsDirectLogin) {
window.open(item.link, '_blank')
return
}
if (!props.subscriptionId) {
return
}
const doLogin = isDkala ? directLoginDkala : directLogin
const doLogin = isDkala ? directLoginDkala : isDpage ? directLoginDpage : directLogin
doLogin(props.subscriptionId, {
onSuccess: (data) => {
window.open(item.link + `?token=${data?.data?.tokens?.accessToken?.token}&refreshToken=${data?.data?.tokens?.refreshToken?.token}`, '_blank')
@@ -131,3 +131,10 @@ export const useDirectLogin = () => {
mutationKey: ["direct-login"],
});
};
export const useDirectLoginDpage = () => {
return useMutation({
mutationFn: api.directLoginDpage,
mutationKey: ["direct-login-dpage"],
});
};
@@ -126,3 +126,12 @@ export const directLogin = async (
);
return data;
};
export const directLoginDpage = async (
subscriptionId: string,
): Promise<DirectLoginResponseType> => {
const { data } = await axios.post(`/dpage/login`, {
userSubscriptionId: subscriptionId,
});
return data;
};