This commit is contained in:
@@ -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;
|
||||||
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user