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 { ItemServiceType } from '../pages/service/types/ServiecTypes'
import moment from 'moment-jalaali' import moment from 'moment-jalaali'
import { NumberFormat } from '../config/func' 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 { toast } from './Toast'
import { ErrorType } from '../helpers/types' import { ErrorType } from '../helpers/types'
@@ -32,7 +32,9 @@ const ServiceItem: FC<Props> = (props: Props) => {
const isDmenu = item?.slug === 'Dmenu' const isDmenu = item?.slug === 'Dmenu'
const isDkala = item?.slug === 'Dkala' const isDkala = item?.slug === 'Dkala'
const isDpage = item?.slug === 'Dpage'
const isDmenuOrDkala = isDmenu || isDkala const isDmenuOrDkala = isDmenu || isDkala
const needsDirectLogin = isDmenuOrDkala || isDpage
const { data: dmenuSubscription, isPending: isDmenuPending, isError: isDmenuError } = useGetDmenuSubscription(isChecked && isDmenu && props.isLinkPanel ? props.subscriptionId! : '') 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 { data: dkalaSubscription, isPending: isDkalaPending, isError: isDkalaError } = useGetDkalaSubscription(isChecked && isDkala && props.isLinkPanel ? props.subscriptionId! : '')
const subscription = isDmenu ? dmenuSubscription : dkalaSubscription const subscription = isDmenu ? dmenuSubscription : dkalaSubscription
@@ -40,6 +42,7 @@ const ServiceItem: FC<Props> = (props: Props) => {
const isError = isDmenu ? isDmenuError : isDkalaError const isError = isDmenu ? isDmenuError : isDkalaError
const { mutate: directLogin } = useDirectLogin() const { mutate: directLogin } = useDirectLogin()
const { mutate: directLoginDkala } = useDirectLoginDkala() const { mutate: directLoginDkala } = useDirectLoginDkala()
const { mutate: directLoginDpage } = useDirectLoginDpage()
const getRemainingDays = (endDate: string): number => { const getRemainingDays = (endDate: string): number => {
const now = moment() const now = moment()
@@ -70,14 +73,14 @@ const ServiceItem: FC<Props> = (props: Props) => {
} }
const handleDirectLogin = () => { const handleDirectLogin = () => {
if (!isDmenuOrDkala) { if (!needsDirectLogin) {
window.open(item.link, '_blank') window.open(item.link, '_blank')
return return
} }
if (!props.subscriptionId) { if (!props.subscriptionId) {
return return
} }
const doLogin = isDkala ? directLoginDkala : directLogin const doLogin = isDkala ? directLoginDkala : isDpage ? directLoginDpage : directLogin
doLogin(props.subscriptionId, { doLogin(props.subscriptionId, {
onSuccess: (data) => { onSuccess: (data) => {
window.open(item.link + `?token=${data?.data?.tokens?.accessToken?.token}&refreshToken=${data?.data?.tokens?.refreshToken?.token}`, '_blank') 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"], 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; return data;
}; };
export const directLoginDpage = async (
subscriptionId: string,
): Promise<DirectLoginResponseType> => {
const { data } = await axios.post(`/dpage/login`, {
userSubscriptionId: subscriptionId,
});
return data;
};