@opexa/portal-components 0.0.946 → 0.0.947
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client/hooks/useGlobalStore.d.ts +1 -0
- package/dist/client/hooks/useGlobalStore.js +13 -0
- package/dist/components/DepositWithdrawal/Deposit/AurixPayPayMayaDeposit/AurixPayGrabPayDeposit.js +2 -21
- package/dist/components/KYC/KYCDefault/KYCDefault.d.ts +1 -0
- package/dist/components/KYC/KYCDefault/KYCDefault.js +3 -2
- package/dist/components/KYC/KYCDefault/PersonalInformation.js +7 -0
- package/dist/components/KYC/KYCDefault/useKYCDefault.d.ts +2 -1
- package/dist/components/KYC/KYCDefault/useKYCDefault.js +2 -1
- package/dist/components/KYC/KYCReview.d.ts +1 -0
- package/dist/components/KYC/KYCReview.js +20 -0
- package/dist/components/SingleSignOn/SingleSignOn.d.ts +1 -1
- package/dist/components/SingleSignOn/SingleSignOn.js +15 -7
- package/dist/handlers/index.d.ts +2 -2
- package/dist/ui/QrCode/QrCode.d.ts +25 -25
- package/dist/ui/QrCode/qrCode.recipe.d.ts +5 -5
- package/package.json +1 -1
- package/dist/assets/providers/alize.png +0 -0
- package/dist/assets/providers/bigtime-gaming.png +0 -0
- package/dist/assets/providers/bng.png +0 -0
- package/dist/assets/providers/boongo.png +0 -0
- package/dist/assets/providers/btg.png +0 -0
- package/dist/assets/providers/cq9.png +0 -0
- package/dist/assets/providers/darwin.png +0 -0
- package/dist/assets/providers/digitain.png +0 -0
- package/dist/assets/providers/evolution.png +0 -0
- package/dist/assets/providers/fantasma-games.png +0 -0
- package/dist/assets/providers/fc.png +0 -0
- package/dist/assets/providers/fp.png +0 -0
- package/dist/assets/providers/habanero.png +0 -0
- package/dist/assets/providers/hacksaw.png +0 -0
- package/dist/assets/providers/jdb.png +0 -0
- package/dist/assets/providers/jili.png +0 -0
- package/dist/assets/providers/leap.png +0 -0
- package/dist/assets/providers/live-22-metaverse.png +0 -0
- package/dist/assets/providers/netent.png +0 -0
- package/dist/assets/providers/no-limit.png +0 -0
- package/dist/assets/providers/pg.png +0 -0
- package/dist/assets/providers/pgsoft.png +0 -0
- package/dist/assets/providers/pragmatic-play.png +0 -0
- package/dist/assets/providers/realtime-gaming.png +0 -0
- package/dist/assets/providers/redtiger.png +0 -0
- package/dist/assets/providers/rtg.png +0 -0
- package/dist/assets/providers/sagaming.png +0 -0
- package/dist/client/hooks/useAiOGCashDepositMutation.d.ts +0 -4
- package/dist/client/hooks/useAiOGCashDepositMutation.js +0 -90
- package/dist/client/hooks/useAiOGrabPayDepositMutation.d.ts +0 -4
- package/dist/client/hooks/useAiOGrabPayDepositMutation.js +0 -80
- package/dist/client/hooks/useAiOPalawanPayDepositMutation.d.ts +0 -4
- package/dist/client/hooks/useAiOPalawanPayDepositMutation.js +0 -80
- package/dist/client/hooks/useAiOPayMayaDepositMutation.d.ts +0 -4
- package/dist/client/hooks/useAiOPayMayaDepositMutation.js +0 -80
- package/dist/components/Banner/Banner.client.d.ts +0 -12
- package/dist/components/Banner/Banner.client.js +0 -49
- package/dist/components/DepositWithdrawal/AiOPaymentMethods.d.ts +0 -11
- package/dist/components/DepositWithdrawal/AiOPaymentMethods.js +0 -55
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositAlert.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositAlert.js +0 -99
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositDetails.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositDetails.js +0 -17
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositForm.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositForm.js +0 -116
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHQRCode.d.ts +0 -3
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHQRCode.js +0 -69
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDeposit.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDeposit.js +0 -10
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDepositAlert.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDepositAlert.js +0 -99
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDepositContext.d.ts +0 -25
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDepositContext.js +0 -2
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDepositDetails.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDepositDetails.js +0 -17
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDepositForm.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHDepositForm.js +0 -116
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHQRCode.d.ts +0 -3
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/QRPHQRCode.js +0 -69
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/useQRPHDeposit.d.ts +0 -13
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit__legacy/useQRPHDeposit.js +0 -85
- package/dist/components/DepositWithdrawal/Deposit__legacy/AiOGCashDeposit/AiOGCashDeposit.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/AiOGCashDeposit/AiOGCashDeposit.js +0 -173
- package/dist/components/DepositWithdrawal/Deposit__legacy/AiOGrabPayDeposit/AiOGrabPayDeposit.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/AiOGrabPayDeposit/AiOGrabPayDeposit.js +0 -171
- package/dist/components/DepositWithdrawal/Deposit__legacy/AiOPalawanPayDeposit/AiOPalawanPayDeposit.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/AiOPalawanPayDeposit/AiOPalawanPayDeposit.js +0 -171
- package/dist/components/DepositWithdrawal/Deposit__legacy/AiOPayMayaDeposit/AiOPayMayaDeposit.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/AiOPayMayaDeposit/AiOPayMayaDeposit.js +0 -171
- package/dist/components/DepositWithdrawal/Deposit__legacy/AvailablePromos.d.ts +0 -8
- package/dist/components/DepositWithdrawal/Deposit__legacy/AvailablePromos.js +0 -33
- package/dist/components/DepositWithdrawal/Deposit__legacy/Deposit.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/Deposit.js +0 -120
- package/dist/components/DepositWithdrawal/Deposit__legacy/GCashDeposit/GCashDeposit.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/GCashDeposit/GCashDeposit.js +0 -163
- package/dist/components/DepositWithdrawal/Deposit__legacy/GCashWebpayDeposit/GCashWebpayDeposit.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/GCashWebpayDeposit/GCashWebpayDeposit.js +0 -165
- package/dist/components/DepositWithdrawal/Deposit__legacy/LibanganDeposit/LibanganDeposit.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/LibanganDeposit/LibanganDeposit.js +0 -186
- package/dist/components/DepositWithdrawal/Deposit__legacy/MayaAppDeposit/MayaAppDeposit.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/MayaAppDeposit/MayaAppDeposit.js +0 -157
- package/dist/components/DepositWithdrawal/Deposit__legacy/MayaDeposit/MayaDeposit.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/MayaDeposit/MayaDeposit.js +0 -163
- package/dist/components/DepositWithdrawal/Deposit__legacy/MayaWebpayDeposit/MayaWebpayDeposit.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/MayaWebpayDeposit/MayaWebpayDeposit.js +0 -166
- package/dist/components/DepositWithdrawal/Deposit__legacy/OnlineBankDeposit/OnlineBankDeposit.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/OnlineBankDeposit/OnlineBankDeposit.js +0 -10
- package/dist/components/DepositWithdrawal/Deposit__legacy/OnlineBankDeposit/OnlineBankDepositAlert.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/OnlineBankDeposit/OnlineBankDepositAlert.js +0 -99
- package/dist/components/DepositWithdrawal/Deposit__legacy/OnlineBankDeposit/OnlineBankDepositContext.d.ts +0 -25
- package/dist/components/DepositWithdrawal/Deposit__legacy/OnlineBankDeposit/OnlineBankDepositContext.js +0 -2
- package/dist/components/DepositWithdrawal/Deposit__legacy/OnlineBankDeposit/OnlineBankDepositDetails.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/OnlineBankDeposit/OnlineBankDepositDetails.js +0 -19
- package/dist/components/DepositWithdrawal/Deposit__legacy/OnlineBankDeposit/OnlineBankDepositForm.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/OnlineBankDeposit/OnlineBankDepositForm.js +0 -115
- package/dist/components/DepositWithdrawal/Deposit__legacy/OnlineBankDeposit/useOnlineBankDeposit.d.ts +0 -13
- package/dist/components/DepositWithdrawal/Deposit__legacy/OnlineBankDeposit/useOnlineBankDeposit.js +0 -81
- package/dist/components/DepositWithdrawal/Deposit__legacy/PisoPayDeposit/PisoPayDeposit.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/PisoPayDeposit/PisoPayDeposit.js +0 -180
- package/dist/components/DepositWithdrawal/Deposit__legacy/QRPHDeposit/QRPHDeposit.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/QRPHDeposit/QRPHDeposit.js +0 -10
- package/dist/components/DepositWithdrawal/Deposit__legacy/QRPHDeposit/QRPHDepositAlert.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/QRPHDeposit/QRPHDepositAlert.js +0 -99
- package/dist/components/DepositWithdrawal/Deposit__legacy/QRPHDeposit/QRPHDepositContext.d.ts +0 -25
- package/dist/components/DepositWithdrawal/Deposit__legacy/QRPHDeposit/QRPHDepositContext.js +0 -2
- package/dist/components/DepositWithdrawal/Deposit__legacy/QRPHDeposit/QRPHDepositDetails.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/QRPHDeposit/QRPHDepositDetails.js +0 -17
- package/dist/components/DepositWithdrawal/Deposit__legacy/QRPHDeposit/QRPHDepositForm.d.ts +0 -1
- package/dist/components/DepositWithdrawal/Deposit__legacy/QRPHDeposit/QRPHDepositForm.js +0 -116
- package/dist/components/DepositWithdrawal/Deposit__legacy/QRPHDeposit/QRPHQRCode.d.ts +0 -3
- package/dist/components/DepositWithdrawal/Deposit__legacy/QRPHDeposit/QRPHQRCode.js +0 -69
- package/dist/components/DepositWithdrawal/Deposit__legacy/QRPHDeposit/useQRPHDeposit.d.ts +0 -13
- package/dist/components/DepositWithdrawal/Deposit__legacy/QRPHDeposit/useQRPHDeposit.js +0 -85
- package/dist/components/DigitainLauncher/Loading.d.ts +0 -1
- package/dist/components/DigitainLauncher/Loading.js +0 -5
- package/dist/components/Jackpots/JackpotsCarousel/JackpotsCarouselItem.module.css +0 -184
- package/dist/components/Jackpots/JackpotsList/JackpotsListItem.module.css +0 -184
- package/dist/components/KYC/BasicInformation.d.ts +0 -1
- package/dist/components/KYC/BasicInformation.js +0 -101
- package/dist/components/KYC/IdentityVerification.d.ts +0 -1
- package/dist/components/KYC/IdentityVerification.js +0 -120
- package/dist/components/KYC/Indicator.d.ts +0 -1
- package/dist/components/KYC/Indicator.js +0 -8
- package/dist/components/KYC/KYC.lazy.d.ts +0 -6
- package/dist/components/KYC/KYC.lazy.js +0 -45
- package/dist/components/KYC/KYCContext.d.ts +0 -6
- package/dist/components/KYC/KYCContext.js +0 -2
- package/dist/components/KYC/KYCDefault/BasicInformation.d.ts +0 -1
- package/dist/components/KYC/KYCDefault/BasicInformation.js +0 -101
- package/dist/components/KYC/KYCVerificationStatus.d.ts +0 -1
- package/dist/components/KYC/KYCVerificationStatus.js +0 -10
- package/dist/components/KYC/KYCVerificationStatus.lazy.d.ts +0 -1
- package/dist/components/KYC/KYCVerificationStatus.lazy.js +0 -36
- package/dist/components/KYC/PersonalInformation.d.ts +0 -1
- package/dist/components/KYC/PersonalInformation.js +0 -122
- package/dist/components/KYC/useKYC.d.ts +0 -25
- package/dist/components/KYC/useKYC.js +0 -38
- package/dist/components/KYCNotRequired/KYCNotRequired.d.ts +0 -0
- package/dist/components/KYCNotRequired/KYCNotRequired.js +0 -1
- package/dist/components/PortalProvider/AndroidOnlyComponents.d.ts +0 -1
- package/dist/components/PortalProvider/AndroidOnlyComponents.js +0 -12
- package/dist/components/PortalProvider/CXDTokenObserver.d.ts +0 -1
- package/dist/components/PortalProvider/CXDTokenObserver.js +0 -30
- package/dist/components/PortalProvider/LinkGoogleAccountObserver.d.ts +0 -1
- package/dist/components/PortalProvider/LinkGoogleAccountObserver.js +0 -29
- package/dist/components/Quests/MultiWageringQuest.d.ts +0 -1
- package/dist/components/Quests/MultiWageringQuest.js +0 -111
- package/dist/components/SessionWatcher/SessionWatcher.d.ts +0 -1
- package/dist/components/SessionWatcher/SessionWatcher.js +0 -20
- package/dist/components/SessionWatcher/index.d.ts +0 -1
- package/dist/components/SessionWatcher/index.js +0 -1
- package/dist/components/SignIn/utils.d.ts +0 -8
- package/dist/components/SignIn/utils.js +0 -26
- package/dist/constants/Branches.d.ts +0 -2
- package/dist/constants/Branches.js +0 -42
- package/dist/images/game-providers/ALPHACHINKO.png +0 -0
- package/dist/images/responsible-gaming-yellow.png +0 -0
- package/dist/third-parties/FacebookPixel/FacebookPixel.d.ts +0 -4
- package/dist/third-parties/FacebookPixel/FacebookPixel.js +0 -4
- package/dist/third-parties/FacebookPixel/api.d.ts +0 -0
- package/dist/third-parties/FacebookPixel/api.js +0 -1
- package/dist/third-parties/FacebookPixel/index.d.ts +0 -1
- package/dist/third-parties/FacebookPixel/index.js +0 -1
- package/dist/third-parties/GoogleRecaptcha/GoogleRecaptcha.d.ts +0 -4
- package/dist/third-parties/GoogleRecaptcha/GoogleRecaptcha.js +0 -4
- package/dist/third-parties/GoogleRecaptcha/api.d.ts +0 -0
- package/dist/third-parties/GoogleRecaptcha/api.js +0 -1
- package/dist/third-parties/GoogleRecaptcha/index.d.ts +0 -1
- package/dist/third-parties/GoogleRecaptcha/index.js +0 -1
- package/dist/third-parties/index.d.ts +0 -2
- package/dist/third-parties/index.js +0 -2
- package/dist/utils/getLocaleInfo.d.ts +0 -79
- package/dist/utils/getLocaleInfo.js +0 -175
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
import { ObjectId } from '@opexa/object-id';
|
|
2
|
-
import { useMutation } from '@tanstack/react-query';
|
|
3
|
-
import { clamp } from 'lodash-es';
|
|
4
|
-
import invariant from 'tiny-invariant';
|
|
5
|
-
import { explainError } from '../../components/DepositWithdrawal/utils.js';
|
|
6
|
-
import { OPEXAPAY_ENDPOINT } from '../../constants/index.js';
|
|
7
|
-
import { ObjectType } from '../../services/ObjectType.js';
|
|
8
|
-
import { createAiOGCashDeposit, getDeposit, } from '../../services/wallet.js';
|
|
9
|
-
import { capitalize } from '../../utils/capitalize.js';
|
|
10
|
-
import { createPoll } from '../../utils/createPoll.js';
|
|
11
|
-
import { getQueryClient } from '../../utils/getQueryClient.js';
|
|
12
|
-
import { getCreateAiOGCashDepositMutationKey } from '../../utils/mutationKeys.js';
|
|
13
|
-
import { parseDecimal } from '../../utils/parseDecimal.js';
|
|
14
|
-
import { getAvailableQuestsQueryKey, getDepositsCountQueryKey, } from '../../utils/queryKeys.js';
|
|
15
|
-
import { getSession } from '../services/getSession.js';
|
|
16
|
-
export const useCreateAiOGCashDepositMutation = (config) => {
|
|
17
|
-
const queryClient = getQueryClient();
|
|
18
|
-
const mutation = useMutation({
|
|
19
|
-
...config,
|
|
20
|
-
mutationKey: getCreateAiOGCashDepositMutationKey(),
|
|
21
|
-
mutationFn: async (input) => {
|
|
22
|
-
const id = input.id ?? ObjectId.generate(ObjectType.Deposit).toString();
|
|
23
|
-
const session = await getSession();
|
|
24
|
-
invariant(session.status === 'authenticated');
|
|
25
|
-
const successRedirectUrl = new URL('/transactions', input.redirectUrl);
|
|
26
|
-
successRedirectUrl.searchParams.set('tab', 'deposits');
|
|
27
|
-
successRedirectUrl.searchParams.set('id', id);
|
|
28
|
-
await createAiOGCashDeposit({
|
|
29
|
-
...input,
|
|
30
|
-
id,
|
|
31
|
-
redirectUrl: `${OPEXAPAY_ENDPOINT}/aio/success?redirectUrl=${encodeURIComponent(successRedirectUrl.toString())}`,
|
|
32
|
-
}, {
|
|
33
|
-
headers: {
|
|
34
|
-
Authorization: `Bearer ${session.token}`,
|
|
35
|
-
...(session.domain && {
|
|
36
|
-
Domain: session.domain,
|
|
37
|
-
}),
|
|
38
|
-
},
|
|
39
|
-
});
|
|
40
|
-
const poll = createPoll(async () => {
|
|
41
|
-
const session = await getSession();
|
|
42
|
-
invariant(session.status === 'authenticated');
|
|
43
|
-
return await getDeposit(id, {
|
|
44
|
-
headers: {
|
|
45
|
-
Authorization: `Bearer ${session.token}`,
|
|
46
|
-
},
|
|
47
|
-
});
|
|
48
|
-
}, {
|
|
49
|
-
until(res) {
|
|
50
|
-
return (!!res?.checkoutUrl || !!res?.error || res?.status === 'FAILED');
|
|
51
|
-
},
|
|
52
|
-
interval: 1000,
|
|
53
|
-
maxAttempt: 20,
|
|
54
|
-
});
|
|
55
|
-
const res = await poll();
|
|
56
|
-
if (res?.error) {
|
|
57
|
-
const error = new Error();
|
|
58
|
-
error.name = capitalize(res.error, {
|
|
59
|
-
delimiter: capitalize.delimiters.UNDERSCORE,
|
|
60
|
-
});
|
|
61
|
-
error.message = explainError(res.error);
|
|
62
|
-
throw error;
|
|
63
|
-
}
|
|
64
|
-
if (!res?.checkoutUrl) {
|
|
65
|
-
const error = new Error();
|
|
66
|
-
error.name = 'AiOGCashDepositError';
|
|
67
|
-
error.message = 'Failed to process GCash deposit';
|
|
68
|
-
throw error;
|
|
69
|
-
}
|
|
70
|
-
const depositsCount = queryClient.getQueryData(getDepositsCountQueryKey()) ?? 0;
|
|
71
|
-
if (depositsCount <= 0) {
|
|
72
|
-
queryClient.setQueryData(getAvailableQuestsQueryKey(), (prev) => {
|
|
73
|
-
return prev?.map((quest) => {
|
|
74
|
-
const progressPercentage = clamp(parseDecimal(quest.progressPercentage, 0) + 50, 100);
|
|
75
|
-
if (quest.type === 'ONBOARDING') {
|
|
76
|
-
return {
|
|
77
|
-
...quest,
|
|
78
|
-
status: progressPercentage >= 100 ? 'COMPLETED' : quest.status,
|
|
79
|
-
progressPercentage: progressPercentage.toFixed(2),
|
|
80
|
-
};
|
|
81
|
-
}
|
|
82
|
-
return quest;
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
}
|
|
86
|
-
return res;
|
|
87
|
-
},
|
|
88
|
-
});
|
|
89
|
-
return mutation;
|
|
90
|
-
};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { SetOptional } from 'type-fest';
|
|
2
|
-
import { type CreateAiOGrabPayDepositInput } from '../../services/wallet';
|
|
3
|
-
import type { Deposit, Mutation } from '../../types';
|
|
4
|
-
export declare const useCreateAiOGrabPayDepositMutation: Mutation<Deposit, SetOptional<CreateAiOGrabPayDepositInput, 'id'>>;
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { ObjectId } from '@opexa/object-id';
|
|
2
|
-
import { useMutation } from '@tanstack/react-query';
|
|
3
|
-
import { clamp } from 'lodash-es';
|
|
4
|
-
import invariant from 'tiny-invariant';
|
|
5
|
-
import { OPEXAPAY_ENDPOINT } from '../../constants/index.js';
|
|
6
|
-
import { ObjectType } from '../../services/ObjectType.js';
|
|
7
|
-
import { createAiOGrabPayDeposit, getDeposit, } from '../../services/wallet.js';
|
|
8
|
-
import { createPoll } from '../../utils/createPoll.js';
|
|
9
|
-
import { getQueryClient } from '../../utils/getQueryClient.js';
|
|
10
|
-
import { getCreateAiOGrabPayDepositMutationKey } from '../../utils/mutationKeys.js';
|
|
11
|
-
import { parseDecimal } from '../../utils/parseDecimal.js';
|
|
12
|
-
import { getAvailableQuestsQueryKey, getDepositsCountQueryKey, } from '../../utils/queryKeys.js';
|
|
13
|
-
import { getSession } from '../services/getSession.js';
|
|
14
|
-
export const useCreateAiOGrabPayDepositMutation = (config) => {
|
|
15
|
-
const queryClient = getQueryClient();
|
|
16
|
-
const mutation = useMutation({
|
|
17
|
-
...config,
|
|
18
|
-
mutationKey: getCreateAiOGrabPayDepositMutationKey(),
|
|
19
|
-
mutationFn: async (input) => {
|
|
20
|
-
const id = input.id ?? ObjectId.generate(ObjectType.Deposit).toString();
|
|
21
|
-
const session = await getSession();
|
|
22
|
-
invariant(session.status === 'authenticated');
|
|
23
|
-
const successRedirectUrl = new URL('/transactions', input.redirectUrl);
|
|
24
|
-
successRedirectUrl.searchParams.set('tab', 'deposits');
|
|
25
|
-
successRedirectUrl.searchParams.set('id', id);
|
|
26
|
-
await createAiOGrabPayDeposit({
|
|
27
|
-
...input,
|
|
28
|
-
id,
|
|
29
|
-
redirectUrl: `${OPEXAPAY_ENDPOINT}/aio/success?redirectUrl=${encodeURIComponent(successRedirectUrl.toString())}`,
|
|
30
|
-
}, {
|
|
31
|
-
headers: {
|
|
32
|
-
Authorization: `Bearer ${session.token}`,
|
|
33
|
-
...(session.domain && {
|
|
34
|
-
Domain: session.domain,
|
|
35
|
-
}),
|
|
36
|
-
},
|
|
37
|
-
});
|
|
38
|
-
const poll = createPoll(async () => {
|
|
39
|
-
const session = await getSession();
|
|
40
|
-
invariant(session.status === 'authenticated');
|
|
41
|
-
return await getDeposit(id, {
|
|
42
|
-
headers: {
|
|
43
|
-
Authorization: `Bearer ${session.token}`,
|
|
44
|
-
},
|
|
45
|
-
});
|
|
46
|
-
}, {
|
|
47
|
-
until(res) {
|
|
48
|
-
return (!!res?.checkoutUrl || !!res?.error || res?.status === 'FAILED');
|
|
49
|
-
},
|
|
50
|
-
interval: 1000,
|
|
51
|
-
maxAttempt: 20,
|
|
52
|
-
});
|
|
53
|
-
const res = await poll();
|
|
54
|
-
if (!res?.checkoutUrl) {
|
|
55
|
-
const error = new Error();
|
|
56
|
-
error.name = 'AiOGrabPayDepositError';
|
|
57
|
-
error.message = 'Failed to process Grab Pay deposit';
|
|
58
|
-
throw error;
|
|
59
|
-
}
|
|
60
|
-
const depositsCount = queryClient.getQueryData(getDepositsCountQueryKey()) ?? 0;
|
|
61
|
-
if (depositsCount <= 0) {
|
|
62
|
-
queryClient.setQueryData(getAvailableQuestsQueryKey(), (prev) => {
|
|
63
|
-
return prev?.map((quest) => {
|
|
64
|
-
const progressPercentage = clamp(parseDecimal(quest.progressPercentage, 0) + 50, 100);
|
|
65
|
-
if (quest.type === 'ONBOARDING') {
|
|
66
|
-
return {
|
|
67
|
-
...quest,
|
|
68
|
-
status: progressPercentage >= 100 ? 'COMPLETED' : quest.status,
|
|
69
|
-
progressPercentage: progressPercentage.toFixed(2),
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
return quest;
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
return res;
|
|
77
|
-
},
|
|
78
|
-
});
|
|
79
|
-
return mutation;
|
|
80
|
-
};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { SetOptional } from 'type-fest';
|
|
2
|
-
import { type CreateAiOPalawanPayDepositInput } from '../../services/wallet';
|
|
3
|
-
import type { Deposit, Mutation } from '../../types';
|
|
4
|
-
export declare const useCreateAiOPalawanPayDepositMutation: Mutation<Deposit, SetOptional<CreateAiOPalawanPayDepositInput, 'id'>>;
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { ObjectId } from '@opexa/object-id';
|
|
2
|
-
import { useMutation } from '@tanstack/react-query';
|
|
3
|
-
import { clamp } from 'lodash-es';
|
|
4
|
-
import invariant from 'tiny-invariant';
|
|
5
|
-
import { OPEXAPAY_ENDPOINT } from '../../constants/index.js';
|
|
6
|
-
import { ObjectType } from '../../services/ObjectType.js';
|
|
7
|
-
import { createAiOPalawanPayDeposit, getDeposit, } from '../../services/wallet.js';
|
|
8
|
-
import { createPoll } from '../../utils/createPoll.js';
|
|
9
|
-
import { getQueryClient } from '../../utils/getQueryClient.js';
|
|
10
|
-
import { getCreateAiOPalawanPayDepositMutationKey } from '../../utils/mutationKeys.js';
|
|
11
|
-
import { parseDecimal } from '../../utils/parseDecimal.js';
|
|
12
|
-
import { getAvailableQuestsQueryKey, getDepositsCountQueryKey, } from '../../utils/queryKeys.js';
|
|
13
|
-
import { getSession } from '../services/getSession.js';
|
|
14
|
-
export const useCreateAiOPalawanPayDepositMutation = (config) => {
|
|
15
|
-
const queryClient = getQueryClient();
|
|
16
|
-
const mutation = useMutation({
|
|
17
|
-
...config,
|
|
18
|
-
mutationKey: getCreateAiOPalawanPayDepositMutationKey(),
|
|
19
|
-
mutationFn: async (input) => {
|
|
20
|
-
const id = input.id ?? ObjectId.generate(ObjectType.Deposit).toString();
|
|
21
|
-
const session = await getSession();
|
|
22
|
-
invariant(session.status === 'authenticated');
|
|
23
|
-
const successRedirectUrl = new URL('/transactions', input.redirectUrl);
|
|
24
|
-
successRedirectUrl.searchParams.set('tab', 'deposits');
|
|
25
|
-
successRedirectUrl.searchParams.set('id', id);
|
|
26
|
-
await createAiOPalawanPayDeposit({
|
|
27
|
-
...input,
|
|
28
|
-
id,
|
|
29
|
-
redirectUrl: `${OPEXAPAY_ENDPOINT}/aio/success?redirectUrl=${encodeURIComponent(successRedirectUrl.toString())}`,
|
|
30
|
-
}, {
|
|
31
|
-
headers: {
|
|
32
|
-
Authorization: `Bearer ${session.token}`,
|
|
33
|
-
...(session.domain && {
|
|
34
|
-
Domain: session.domain,
|
|
35
|
-
}),
|
|
36
|
-
},
|
|
37
|
-
});
|
|
38
|
-
const poll = createPoll(async () => {
|
|
39
|
-
const session = await getSession();
|
|
40
|
-
invariant(session.status === 'authenticated');
|
|
41
|
-
return await getDeposit(id, {
|
|
42
|
-
headers: {
|
|
43
|
-
Authorization: `Bearer ${session.token}`,
|
|
44
|
-
},
|
|
45
|
-
});
|
|
46
|
-
}, {
|
|
47
|
-
until(res) {
|
|
48
|
-
return (!!res?.checkoutUrl || !!res?.error || res?.status === 'FAILED');
|
|
49
|
-
},
|
|
50
|
-
interval: 1000,
|
|
51
|
-
maxAttempt: 20,
|
|
52
|
-
});
|
|
53
|
-
const res = await poll();
|
|
54
|
-
if (!res?.checkoutUrl) {
|
|
55
|
-
const error = new Error();
|
|
56
|
-
error.name = 'AiOPalawanPayDepositError';
|
|
57
|
-
error.message = 'Failed to process Palawan Pay deposit';
|
|
58
|
-
throw error;
|
|
59
|
-
}
|
|
60
|
-
const depositsCount = queryClient.getQueryData(getDepositsCountQueryKey()) ?? 0;
|
|
61
|
-
if (depositsCount <= 0) {
|
|
62
|
-
queryClient.setQueryData(getAvailableQuestsQueryKey(), (prev) => {
|
|
63
|
-
return prev?.map((quest) => {
|
|
64
|
-
const progressPercentage = clamp(parseDecimal(quest.progressPercentage, 0) + 50, 100);
|
|
65
|
-
if (quest.type === 'ONBOARDING') {
|
|
66
|
-
return {
|
|
67
|
-
...quest,
|
|
68
|
-
status: progressPercentage >= 100 ? 'COMPLETED' : quest.status,
|
|
69
|
-
progressPercentage: progressPercentage.toFixed(2),
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
return quest;
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
return res;
|
|
77
|
-
},
|
|
78
|
-
});
|
|
79
|
-
return mutation;
|
|
80
|
-
};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import type { SetOptional } from 'type-fest';
|
|
2
|
-
import { type CreateAiOPayMayaDepositInput } from '../../services/wallet';
|
|
3
|
-
import type { Deposit, Mutation } from '../../types';
|
|
4
|
-
export declare const useCreateAiOPayMayaDepositMutation: Mutation<Deposit, SetOptional<CreateAiOPayMayaDepositInput, 'id'>>;
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { ObjectId } from '@opexa/object-id';
|
|
2
|
-
import { useMutation } from '@tanstack/react-query';
|
|
3
|
-
import { clamp } from 'lodash-es';
|
|
4
|
-
import invariant from 'tiny-invariant';
|
|
5
|
-
import { OPEXAPAY_ENDPOINT } from '../../constants/index.js';
|
|
6
|
-
import { ObjectType } from '../../services/ObjectType.js';
|
|
7
|
-
import { createAiOPayMayaDeposit, getDeposit, } from '../../services/wallet.js';
|
|
8
|
-
import { createPoll } from '../../utils/createPoll.js';
|
|
9
|
-
import { getQueryClient } from '../../utils/getQueryClient.js';
|
|
10
|
-
import { getCreateAiOPayMayaDepositMutationKey } from '../../utils/mutationKeys.js';
|
|
11
|
-
import { parseDecimal } from '../../utils/parseDecimal.js';
|
|
12
|
-
import { getAvailableQuestsQueryKey, getDepositsCountQueryKey, } from '../../utils/queryKeys.js';
|
|
13
|
-
import { getSession } from '../services/getSession.js';
|
|
14
|
-
export const useCreateAiOPayMayaDepositMutation = (config) => {
|
|
15
|
-
const queryClient = getQueryClient();
|
|
16
|
-
const mutation = useMutation({
|
|
17
|
-
...config,
|
|
18
|
-
mutationKey: getCreateAiOPayMayaDepositMutationKey(),
|
|
19
|
-
mutationFn: async (input) => {
|
|
20
|
-
const id = input.id ?? ObjectId.generate(ObjectType.Deposit).toString();
|
|
21
|
-
const session = await getSession();
|
|
22
|
-
invariant(session.status === 'authenticated');
|
|
23
|
-
const successRedirectUrl = new URL('/transactions', input.redirectUrl);
|
|
24
|
-
successRedirectUrl.searchParams.set('tab', 'deposits');
|
|
25
|
-
successRedirectUrl.searchParams.set('id', id);
|
|
26
|
-
await createAiOPayMayaDeposit({
|
|
27
|
-
...input,
|
|
28
|
-
id,
|
|
29
|
-
redirectUrl: `${OPEXAPAY_ENDPOINT}/aio/success?redirectUrl=${encodeURIComponent(successRedirectUrl.toString())}`,
|
|
30
|
-
}, {
|
|
31
|
-
headers: {
|
|
32
|
-
Authorization: `Bearer ${session.token}`,
|
|
33
|
-
...(session.domain && {
|
|
34
|
-
Domain: session.domain,
|
|
35
|
-
}),
|
|
36
|
-
},
|
|
37
|
-
});
|
|
38
|
-
const poll = createPoll(async () => {
|
|
39
|
-
const session = await getSession();
|
|
40
|
-
invariant(session.status === 'authenticated');
|
|
41
|
-
return await getDeposit(id, {
|
|
42
|
-
headers: {
|
|
43
|
-
Authorization: `Bearer ${session.token}`,
|
|
44
|
-
},
|
|
45
|
-
});
|
|
46
|
-
}, {
|
|
47
|
-
until(res) {
|
|
48
|
-
return (!!res?.checkoutUrl || !!res?.error || res?.status === 'FAILED');
|
|
49
|
-
},
|
|
50
|
-
interval: 1000,
|
|
51
|
-
maxAttempt: 20,
|
|
52
|
-
});
|
|
53
|
-
const res = await poll();
|
|
54
|
-
if (!res?.checkoutUrl) {
|
|
55
|
-
const error = new Error();
|
|
56
|
-
error.name = 'AiOPayMayaDepositError';
|
|
57
|
-
error.message = 'Failed to process Pay Maya deposit';
|
|
58
|
-
throw error;
|
|
59
|
-
}
|
|
60
|
-
const depositsCount = queryClient.getQueryData(getDepositsCountQueryKey()) ?? 0;
|
|
61
|
-
if (depositsCount <= 0) {
|
|
62
|
-
queryClient.setQueryData(getAvailableQuestsQueryKey(), (prev) => {
|
|
63
|
-
return prev?.map((quest) => {
|
|
64
|
-
const progressPercentage = clamp(parseDecimal(quest.progressPercentage, 0) + 50, 100);
|
|
65
|
-
if (quest.type === 'ONBOARDING') {
|
|
66
|
-
return {
|
|
67
|
-
...quest,
|
|
68
|
-
status: progressPercentage >= 100 ? 'COMPLETED' : quest.status,
|
|
69
|
-
progressPercentage: progressPercentage.toFixed(2),
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
return quest;
|
|
73
|
-
});
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
return res;
|
|
77
|
-
},
|
|
78
|
-
});
|
|
79
|
-
return mutation;
|
|
80
|
-
};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import type { ImageProps } from 'next/image';
|
|
2
|
-
export interface BannerEntry {
|
|
3
|
-
src: ImageProps['src'];
|
|
4
|
-
redirectUrl?: string;
|
|
5
|
-
}
|
|
6
|
-
export interface BannerProps {
|
|
7
|
-
banners: BannerEntry[];
|
|
8
|
-
imageWidth?: number | [mobile: number, desktop: number];
|
|
9
|
-
imageHeight?: number | [mobile: number, desktop: number];
|
|
10
|
-
className?: string;
|
|
11
|
-
}
|
|
12
|
-
export declare function Banner__client(props: BannerProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
'use client';
|
|
2
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
-
import emblaCarouselAutoplay from 'embla-carousel-autoplay';
|
|
4
|
-
import useEmblaCarousel, {} from 'embla-carousel-react';
|
|
5
|
-
import isMobile from 'is-mobile';
|
|
6
|
-
import Image from 'next/image';
|
|
7
|
-
import Link from 'next/link';
|
|
8
|
-
import { Fragment, useEffect, useState } from 'react';
|
|
9
|
-
import { twMerge } from 'tailwind-merge';
|
|
10
|
-
import { dataAttr } from '../../utils/dataAttr.js';
|
|
11
|
-
export function Banner__client(props) {
|
|
12
|
-
const [emblaRef, emblaApi] = useEmblaCarousel({
|
|
13
|
-
loop: true,
|
|
14
|
-
align: 'start',
|
|
15
|
-
}, [
|
|
16
|
-
emblaCarouselAutoplay({
|
|
17
|
-
playOnInit: true,
|
|
18
|
-
delay: 5000,
|
|
19
|
-
}),
|
|
20
|
-
]);
|
|
21
|
-
const [currentIndex, setCurrentIndex] = useState(0);
|
|
22
|
-
useEffect(() => {
|
|
23
|
-
function handler(detail) {
|
|
24
|
-
setCurrentIndex(detail?.selectedScrollSnap() ?? 0);
|
|
25
|
-
}
|
|
26
|
-
emblaApi?.on('scroll', handler);
|
|
27
|
-
emblaApi?.on('init', handler);
|
|
28
|
-
return () => {
|
|
29
|
-
emblaApi?.on('init', handler);
|
|
30
|
-
emblaApi?.off('scroll', handler);
|
|
31
|
-
};
|
|
32
|
-
}, [emblaApi]);
|
|
33
|
-
const imageWidth = !props.imageWidth
|
|
34
|
-
? [400, 1200]
|
|
35
|
-
: Array.isArray(props.imageWidth)
|
|
36
|
-
? props.imageWidth
|
|
37
|
-
: [props.imageWidth, props.imageWidth];
|
|
38
|
-
const imageHeight = !props.imageHeight
|
|
39
|
-
? [225, 300]
|
|
40
|
-
: Array.isArray(props.imageHeight)
|
|
41
|
-
? props.imageHeight
|
|
42
|
-
: [props.imageHeight, props.imageHeight];
|
|
43
|
-
return (_jsxs("div", { className: twMerge('relative', props.className), children: [_jsx("div", { ref: emblaRef, className: "overflow-hidden", children: _jsx("div", { className: "flex gap-2", children: props.banners.map((banner, index) => {
|
|
44
|
-
const img = (_jsx(Image, { src: banner.src, alt: "", width: isMobile() ? imageWidth[0] : imageWidth[1], height: isMobile() ? imageHeight[0] : imageHeight[1], className: "block h-auto w-full", priority: index === 0 }));
|
|
45
|
-
return (_jsx(Fragment, { children: !banner.redirectUrl ? (_jsx("div", { className: "w-full shrink-0", children: img })) : (_jsx(Link, { href: banner.redirectUrl, className: "block w-full shrink-0", "aria-label": `Open ${banner.redirectUrl}`, children: img })) }, index));
|
|
46
|
-
}) }) }), _jsx("div", { className: "absolute bottom-lg left-1/2 flex w-fit -translate-x-1/2 gap-2", children: props.banners.map((_, index) => (_jsx("button", { type: "button", className: "ui-active:bg-brand-500 bg-gray-300 size-3 shrink-0 rounded-full border border-white transition-all duration-300 ui-active:w-9", onClick: () => {
|
|
47
|
-
emblaApi?.scrollTo(index);
|
|
48
|
-
}, "aria-label": `Go to slide ${index + 1}`, "data-active": dataAttr(index === currentIndex) }, index))) })] }));
|
|
49
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { type AiOeWalletPaymentMethod } from './utils';
|
|
2
|
-
interface AiOPaymentMethodsProps {
|
|
3
|
-
value?: AiOeWalletPaymentMethod;
|
|
4
|
-
onChange?: (value: AiOeWalletPaymentMethod) => void;
|
|
5
|
-
defaultValue?: AiOeWalletPaymentMethod;
|
|
6
|
-
options?: AiOeWalletPaymentMethod[];
|
|
7
|
-
className?: string;
|
|
8
|
-
label?: string;
|
|
9
|
-
}
|
|
10
|
-
export declare function AiOPaymentMethods(props: AiOPaymentMethodsProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
-
export {};
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import Image from 'next/image';
|
|
3
|
-
import { twMerge } from 'tailwind-merge';
|
|
4
|
-
import { useControllableState } from '../../client/hooks/useControllableState.js';
|
|
5
|
-
import { CheckIcon } from '../../icons/CheckIcon.js';
|
|
6
|
-
import gcash from '../../images/gcash.png';
|
|
7
|
-
import grabPay from '../../images/grabpay.png';
|
|
8
|
-
import maya from '../../images/maya.png';
|
|
9
|
-
import palawanPay from '../../images/palawanpay.png';
|
|
10
|
-
import { Checkbox } from '../../ui/Checkbox/index.js';
|
|
11
|
-
import { Field } from '../../ui/Field/index.js';
|
|
12
|
-
import { AiOeWalletPaymentMethodDefinition, } from './utils.js';
|
|
13
|
-
const AIO_EWALLET_OPTIONS = [
|
|
14
|
-
{
|
|
15
|
-
value: 'AIO_GCASH',
|
|
16
|
-
label: 'GCash',
|
|
17
|
-
image: gcash,
|
|
18
|
-
},
|
|
19
|
-
{
|
|
20
|
-
value: 'AIO_PAY_MAYA',
|
|
21
|
-
label: 'Maya',
|
|
22
|
-
image: maya,
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
value: 'AIO_GRAB_PAY',
|
|
26
|
-
label: 'GrabPay',
|
|
27
|
-
image: grabPay,
|
|
28
|
-
},
|
|
29
|
-
{
|
|
30
|
-
value: 'AIO_PALAWAN_PAY',
|
|
31
|
-
label: 'Palawan Pay',
|
|
32
|
-
image: palawanPay,
|
|
33
|
-
},
|
|
34
|
-
];
|
|
35
|
-
export function AiOPaymentMethods(props) {
|
|
36
|
-
const options = props.options && props.options.length > 0
|
|
37
|
-
? AIO_EWALLET_OPTIONS.filter((option) => props.options?.includes(option.value))
|
|
38
|
-
: AIO_EWALLET_OPTIONS;
|
|
39
|
-
const [value, setValue] = useControllableState({
|
|
40
|
-
value: props.value,
|
|
41
|
-
defaultValue: props.defaultValue ?? options[0]?.value,
|
|
42
|
-
onChange: props.onChange,
|
|
43
|
-
});
|
|
44
|
-
const parseValue = (val) => {
|
|
45
|
-
return AiOeWalletPaymentMethodDefinition.parse(val);
|
|
46
|
-
};
|
|
47
|
-
return (_jsxs("div", { className: props.className, children: [_jsx(Field.Label, { asChild: true, children: _jsx("div", { children: props.label || 'AIO eWallet payment methods' }) }), _jsx(Checkbox.Group, { value: [value], onValueChange: (newValue) => {
|
|
48
|
-
const lastValue = newValue.at(-1);
|
|
49
|
-
if (!lastValue)
|
|
50
|
-
return;
|
|
51
|
-
setValue(parseValue(lastValue));
|
|
52
|
-
}, className: "grid grid-cols-2 gap-x-4 gap-y-3", children: options.map((option) => (_jsxs(Checkbox.Root, { value: option.value, className: "flex cursor-pointer items-center justify-between rounded-xl border border-border-secondary ui-checked:border-border-brand-solid p-lg", children: [_jsx("div", { className: twMerge('rounded-xs', option.value === 'AIO_GRAB_PAY'
|
|
53
|
-
? 'bg-transparent px-0 py-0'
|
|
54
|
-
: 'bg-white px-sm py-[0.688rem]', option.value === 'AIO_GCASH' && 'bg-[#017EFF]', option.value === 'AIO_PALAWAN_PAY' && 'bg-[#026308]', option.value === 'AIO_PAY_MAYA' && 'bg-black'), children: _jsx(Image, { src: option.image, alt: "", width: 200, height: 40, className: twMerge('h-[1.063rem] w-auto', option.value === 'AIO_GRAB_PAY' && 'h-[3rem] rounded-[4px]', option.value === 'AIO_PALAWAN_PAY' && 'h-[2rem]'), draggable: false }) }), _jsx(Checkbox.Control, { className: "shrink-0", children: _jsx(Checkbox.Indicator, { asChild: true, children: _jsx(CheckIcon, {}) }) }), _jsx(Checkbox.HiddenInput, {})] }, option.value))) })] }));
|
|
55
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function QRPHDepositAlert(): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { AlertCircleIcon } from '../../../../icons/AlertCircleIcon.js';
|
|
3
|
-
import { SpinnerIcon } from '../../../../icons/SpinnerIcon.js';
|
|
4
|
-
import { XIcon } from '../../../../icons/XIcon.js';
|
|
5
|
-
import { AlertDialog } from '../../../../ui/AlertDialog/index.js';
|
|
6
|
-
import { Button } from '../../../../ui/Button/index.js';
|
|
7
|
-
import { Portal } from '../../../../ui/Portal/index.js';
|
|
8
|
-
import { useQRPHDepositContext } from './QRPHDepositContext.js';
|
|
9
|
-
export function QRPHDepositAlert() {
|
|
10
|
-
const context = useQRPHDepositContext();
|
|
11
|
-
const details = useDetails();
|
|
12
|
-
return (_jsx(AlertDialog.Root, { open: context.status !== 'waiting' &&
|
|
13
|
-
context.status !== 'verification-waiting', onOpenChange: (details) => {
|
|
14
|
-
if (!details.open) {
|
|
15
|
-
context.reset();
|
|
16
|
-
}
|
|
17
|
-
}, lazyMount: true, unmountOnExit: true, closeOnEscape: false, closeOnInteractOutside: false, children: _jsxs(Portal, { children: [_jsx(AlertDialog.Backdrop, { className: "!z-[calc(var(--z-dialog)+2)]" }), _jsx(AlertDialog.Positioner, { className: "!z-[calc(var(--z-dialog)+3)]", children: _jsxs(AlertDialog.Content, { children: [_jsx(AlertDialog.CloseTrigger, { disabled: details.type === 'loading', children: _jsx(XIcon, {}) }), _jsxs(AlertDialog.Header, { children: [details.type === 'loading' && (_jsx(SpinnerIcon, { className: "size-12 text-text-brand-primary-600" })), details.type === 'success' && (_jsx("div", { className: "flex size-12 items-center justify-center rounded-full bg-bg-success-secondary text-text-featured-icon-light-success", children: _jsx(AlertCircleIcon, {}) })), details.type === 'erorr' && (_jsx("div", { className: "flex size-12 items-center justify-center rounded-full bg-bg-error-secondary text-text-featured-icon-light-error", children: _jsx(AlertCircleIcon, {}) }))] }), _jsxs(AlertDialog.Body, { children: [_jsx(AlertDialog.Title, { children: details.title }), _jsx(AlertDialog.Description, { children: details.description })] }), (details.type === 'erorr' || details.type === 'success') && (_jsx(AlertDialog.Footer, { children: _jsx(AlertDialog.Context, { children: (api) => (_jsx(Button, { onClick: () => {
|
|
18
|
-
api.setOpen(false);
|
|
19
|
-
}, children: details.type === 'success' ? 'Ok' : 'Try Again' })) }) }))] }) })] }) }));
|
|
20
|
-
}
|
|
21
|
-
function useDetails() {
|
|
22
|
-
const context = useQRPHDepositContext();
|
|
23
|
-
const title = (() => {
|
|
24
|
-
let s = '';
|
|
25
|
-
if (context.status === 'processing') {
|
|
26
|
-
s = 'Processing Deposit';
|
|
27
|
-
}
|
|
28
|
-
else if (context.status === 'failed') {
|
|
29
|
-
s = 'Deposit Failed';
|
|
30
|
-
}
|
|
31
|
-
else if (context.status === 'verification-success') {
|
|
32
|
-
s = 'Deposit Successful';
|
|
33
|
-
}
|
|
34
|
-
else if (context.status === 'verification-processing') {
|
|
35
|
-
s = 'Verifying Deposit';
|
|
36
|
-
}
|
|
37
|
-
else if (context.status === 'verification-failed') {
|
|
38
|
-
if (context.deposit?.status === 'CANCELLED') {
|
|
39
|
-
s = 'Deposit Cancelled';
|
|
40
|
-
}
|
|
41
|
-
else if (context.deposit?.status === 'REJECTED') {
|
|
42
|
-
s = 'Deposit Rejected';
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
s = 'Deposit Failed';
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
return s;
|
|
49
|
-
})();
|
|
50
|
-
const description = (() => {
|
|
51
|
-
let d = '';
|
|
52
|
-
if (context.status === 'processing') {
|
|
53
|
-
d = "We're verifying your account and amount. Please hold a moment.";
|
|
54
|
-
}
|
|
55
|
-
else if (context.status === 'failed') {
|
|
56
|
-
d =
|
|
57
|
-
'Something went wrong while processing your deposit. ' +
|
|
58
|
-
'Please try again or contact support.';
|
|
59
|
-
}
|
|
60
|
-
else if (context.status === 'verification-success') {
|
|
61
|
-
d = 'Your deposit has been successfully processed.';
|
|
62
|
-
}
|
|
63
|
-
else if (context.status === 'verification-processing') {
|
|
64
|
-
d = 'Your deposit is being processed.';
|
|
65
|
-
}
|
|
66
|
-
else if (context.status === 'verification-failed') {
|
|
67
|
-
if (context.deposit?.status === 'CANCELLED') {
|
|
68
|
-
d = 'Your deposit has been cancelled.';
|
|
69
|
-
}
|
|
70
|
-
else if (context.deposit?.status === 'REJECTED') {
|
|
71
|
-
d = 'Your deposit has been rejected.';
|
|
72
|
-
}
|
|
73
|
-
else if (context.deposit?.status === 'FAILED') {
|
|
74
|
-
d = context.deposit.error ?? 'Your deposit has failed.';
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
d =
|
|
78
|
-
'Something went wrong while processing your deposit. ' +
|
|
79
|
-
'Please try again or contact support.';
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
return d;
|
|
83
|
-
})();
|
|
84
|
-
const type = (() => {
|
|
85
|
-
if (context.status === 'failed' ||
|
|
86
|
-
context.status === 'verification-failed') {
|
|
87
|
-
return 'erorr';
|
|
88
|
-
}
|
|
89
|
-
if (context.status === 'verification-success') {
|
|
90
|
-
return 'success';
|
|
91
|
-
}
|
|
92
|
-
return 'loading';
|
|
93
|
-
})();
|
|
94
|
-
return {
|
|
95
|
-
type,
|
|
96
|
-
title,
|
|
97
|
-
description,
|
|
98
|
-
};
|
|
99
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function QRPHDepositDetails(): import("react/jsx-runtime").JSX.Element | null;
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
import { QrCode02Icon } from '../../../../icons/QrCode02Icon.js';
|
|
3
|
-
import { XIcon } from '../../../../icons/XIcon.js';
|
|
4
|
-
import { Button } from '../../../../ui/Button/index.js';
|
|
5
|
-
import { Dialog } from '../../../../ui/Dialog/index.js';
|
|
6
|
-
import { Portal } from '../../../../ui/Portal/index.js';
|
|
7
|
-
import { useQRPHDepositContext } from './QRPHDepositContext.js';
|
|
8
|
-
import { QRPHQRCode } from './QRPHQRCode.js';
|
|
9
|
-
export function QRPHDepositDetails() {
|
|
10
|
-
const context = useQRPHDepositContext();
|
|
11
|
-
if (context.view !== 'qrCode')
|
|
12
|
-
return null;
|
|
13
|
-
return (_jsxs("div", { className: "rounded-lg bg-bg-primary-alt p-2xl", children: [_jsx("p", { className: "text-center font-semibold text-lg lg:text-xl", children: "QR Code" }), _jsx("p", { className: "mt-3 text-center text-sm text-text-secondary-700 lg:text-base", children: "Scan the QR code below with your banking app, or upload it to complete your deposit." }), _jsx(QRPHQRCode, { qrCodeString: context.deposit?.qrCode ?? '' }), _jsx("div", { className: "mt-6 flex flex-col gap-4 lg:flex-row", children: _jsx(Button, { size: "sm", variant: "outline", colorScheme: "gray", onClick: context.reset, children: "Generate New QR Code" }) }), _jsx(Instruction, {})] }));
|
|
14
|
-
}
|
|
15
|
-
function Instruction() {
|
|
16
|
-
return (_jsxs("p", { className: "mt-6 text-center text-text-tertiary-600 text-xs", children: ["Need help using the QR Code?", ' ', _jsxs(Dialog.Root, { lazyMount: true, unmountOnExit: true, children: [_jsx(Dialog.Trigger, { className: "text-text-warning-primary-600", children: "See instructions" }), _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, { className: "!z-[calc(var(--z-dialog)+2)]" }), _jsx(Dialog.Positioner, { className: "!z-[calc(var(--z-dialog)+3)] flex items-center justify-center", children: _jsxs(Dialog.Content, { className: "mx-auto w-[calc(100%-2rem)] overflow-y-auto rounded-lg p-4xl lg:w-[33.625rem]", children: [_jsx(Dialog.CloseTrigger, { children: _jsx(XIcon, {}) }), _jsxs(Dialog.Body, { children: [_jsxs("div", { className: "flex items-center gap-xl", children: [_jsx("div", { className: "flex size-11 items-center justify-center rounded-lg border border-border-primary text-gray-700 text-text-secondary-700 shadow-xs", children: _jsx(QrCode02Icon, { className: "size-6" }) }), _jsx(Dialog.Title, { className: "font-semibold text-lg", children: "How to Use the QR Code for Payment" })] }), _jsx(Dialog.Description, { className: "mt-5", children: "Follow these simple steps to complete your transaction:" }), _jsxs("ol", { className: "mt-3 list-inside list-decimal space-y-3", children: [_jsx("li", { children: "Open your preferred banking or EMI mobile app and select 'Transfer Money' or 'Pay via QR'" }), _jsx("li", { children: "Scan or upload the generated QR Ph code. If prompted by the app, enter the amount to be sent." }), _jsx("li", { children: "Proceed with the transfer or payment." })] })] })] }) })] })] })] }));
|
|
17
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function QRPHDepositForm(): import("react/jsx-runtime").JSX.Element | null;
|