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