@opexa/portal-components 0.0.1009 → 0.0.1010

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.
Files changed (51) hide show
  1. package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/OnlineBankDepositContext.d.ts +4 -4
  2. package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/useOnlineBankDeposit.d.ts +2 -2
  3. package/dist/components/KYC/KYCAccountVerificationRequired.lazy.js +1 -1
  4. package/dist/components/KYC/KYCDefault/IdentityVerification.js +9 -1
  5. package/dist/components/KYC/KYCDefault/PersonalInformation.js +16 -1
  6. package/dist/components/KYC/KYCReminder.lazy.js +5 -2
  7. package/dist/components/KYC/KYCReview.js +2 -5
  8. package/dist/components/Messages/MessagesPopup.js +6 -2
  9. package/dist/components/TermsOfUse/TermsOfUseV2.lazy.js +2 -1
  10. package/dist/schemas/forgotPasswordSchema.d.ts +4 -4
  11. package/dist/ui/AlertDialog/AlertDialog.d.ts +121 -121
  12. package/dist/ui/AlertDialog/alertDialog.recipe.d.ts +11 -11
  13. package/dist/ui/Badge/Badge.d.ts +12 -12
  14. package/dist/ui/Badge/badge.anatomy.d.ts +1 -1
  15. package/dist/ui/Badge/badge.recipe.d.ts +3 -3
  16. package/dist/ui/Carousel/Carousel.d.ts +99 -99
  17. package/dist/ui/Carousel/carousel.recipe.d.ts +11 -11
  18. package/dist/ui/Checkbox/Checkbox.d.ts +23 -23
  19. package/dist/ui/Checkbox/checkbox.recipe.d.ts +3 -3
  20. package/dist/ui/Clipboard/Clipboard.d.ts +18 -18
  21. package/dist/ui/Clipboard/clipboard.recipe.d.ts +3 -3
  22. package/dist/ui/Combobox/Combobox.d.ts +42 -42
  23. package/dist/ui/Combobox/combobox.recipe.d.ts +3 -3
  24. package/dist/ui/DatePicker/DatePicker.d.ts +72 -72
  25. package/dist/ui/DatePicker/datePicker.recipe.d.ts +3 -3
  26. package/dist/ui/Dialog/Dialog.d.ts +33 -33
  27. package/dist/ui/Dialog/dialog.recipe.d.ts +3 -3
  28. package/dist/ui/Drawer/Drawer.d.ts +33 -33
  29. package/dist/ui/Drawer/drawer.recipe.d.ts +3 -3
  30. package/dist/ui/Menu/Menu.d.ts +90 -90
  31. package/dist/ui/Menu/menu.recipe.d.ts +5 -5
  32. package/dist/ui/SegmentGroup/SegmentGroup.d.ts +18 -18
  33. package/dist/ui/SegmentGroup/segmentGroup.recipe.d.ts +3 -3
  34. package/dist/ui/Select/Select.d.ts +45 -45
  35. package/dist/ui/Select/select.recipe.d.ts +3 -3
  36. package/dist/ui/Table/Table.d.ts +21 -21
  37. package/dist/ui/Table/table.anatomy.d.ts +1 -1
  38. package/dist/ui/Table/table.recipe.d.ts +3 -3
  39. package/package.json +1 -1
  40. package/dist/client/hooks/useVerifyMobileNumber.d.ts +0 -3
  41. package/dist/client/hooks/useVerifyMobileNumber.js +0 -20
  42. package/dist/components/DepositWithdrawal/Deposit/AurixPayPayMayaDeposit/AurixPayGrabPayDeposit.d.ts +0 -1
  43. package/dist/components/DepositWithdrawal/Deposit/AurixPayPayMayaDeposit/AurixPayGrabPayDeposit.js +0 -241
  44. package/dist/components/SingleSignOn/SingleSignOn.d.ts +0 -4
  45. package/dist/components/SingleSignOn/SingleSignOn.js +0 -185
  46. package/dist/components/SingleSignOn/index.d.ts +0 -1
  47. package/dist/components/SingleSignOn/index.js +0 -1
  48. package/dist/lib/components/UpdateMobilePhoneNumber/UpdateMobilePhoneNumber.d.ts +0 -1
  49. package/dist/lib/components/UpdateMobilePhoneNumber/UpdateMobilePhoneNumber.js +0 -152
  50. package/dist/lib/components/UpdateMobilePhoneNumber/index.d.ts +0 -1
  51. package/dist/lib/components/UpdateMobilePhoneNumber/index.js +0 -1
@@ -1,7 +1,7 @@
1
1
  export declare const OnlineBankDepositContext: (props: {
2
2
  value: {
3
- view: "form" | "vca";
4
- status: "failed" | "waiting" | "processing" | "verification-waiting" | "verification-processing" | "verification-failed" | "verification-success";
3
+ view: "vca" | "form";
4
+ status: "waiting" | "failed" | "processing" | "verification-waiting" | "verification-processing" | "verification-failed" | "verification-success";
5
5
  verify: () => void;
6
6
  reset: () => void;
7
7
  deposit: import("../../../../types").Deposit | null;
@@ -13,8 +13,8 @@ export declare const OnlineBankDepositContext: (props: {
13
13
  } & {
14
14
  children?: import("react").ReactNode | undefined;
15
15
  }) => React.ReactNode, useOnlineBankDepositContext: () => {
16
- view: "form" | "vca";
17
- status: "failed" | "waiting" | "processing" | "verification-waiting" | "verification-processing" | "verification-failed" | "verification-success";
16
+ view: "vca" | "form";
17
+ status: "waiting" | "failed" | "processing" | "verification-waiting" | "verification-processing" | "verification-failed" | "verification-success";
18
18
  verify: () => void;
19
19
  reset: () => void;
20
20
  deposit: import("../../../../types").Deposit | null;
@@ -1,8 +1,8 @@
1
1
  import type { Deposit } from '../../../../types';
2
2
  export type UseOnlineBankDepositReturn = ReturnType<typeof useOnlineBankDeposit>;
3
3
  export declare function useOnlineBankDeposit(): {
4
- view: "form" | "vca";
5
- status: "failed" | "waiting" | "processing" | "verification-waiting" | "verification-processing" | "verification-failed" | "verification-success";
4
+ view: "vca" | "form";
5
+ status: "waiting" | "failed" | "processing" | "verification-waiting" | "verification-processing" | "verification-failed" | "verification-success";
6
6
  verify: () => void;
7
7
  reset: () => void;
8
8
  deposit: Deposit | null;
@@ -20,7 +20,7 @@ function KYCAccountVerificationRequired_lazy() {
20
20
  const isOpen = globalStore.kycVerificationRequired.open &&
21
21
  !globalStore.disclaimer.open &&
22
22
  !globalStore.termsOfUse.open;
23
- return (_jsxs(Dialog.Root, { open: isOpen, closeOnEscape: false, closeOnInteractOutside: false, lazyMount: true, unmountOnExit: true, children: [_jsx(Dialog.Backdrop, { className: "z-[999]" }), _jsx(Dialog.Positioner, { className: "z-[999] flex items-center justify-center", children: _jsx(Dialog.Content, { className: "mx-auto h-fit max-w-[calc(100dvw-1rem)] overflow-y-auto rounded-lg bg-bg-primary lg:max-w-[400px]", children: _jsxs("div", { className: "p-3xl text-center", children: [_jsx("div", { className: "mx-auto w-fit rounded-full bg-bg-brand-secondary p-2", children: _jsx(FileX02Icon, { className: "text-shadow-text-brand" }) }), _jsx("h2", { className: "mt-4 font-semibold text-lg", children: "Account Verification Rejected!" }), _jsxs("p", { className: "mt-xs flex flex-col gap-4 text-sm", children: [_jsx("span", { className: "text-text-tertiary-600", children: "We're sorry, but your verification was rejected for the following reasons:" }), rejectionMessage?.title && rejectionMessage?.content ? (_jsxs("span", { children: [_jsxs("b", { children: [rejectionMessage?.title, ":"] }), _jsx("span", { className: "text-text-tertiary-600", dangerouslySetInnerHTML: {
23
+ return (_jsxs(Dialog.Root, { open: isOpen, closeOnEscape: false, closeOnInteractOutside: false, lazyMount: true, unmountOnExit: true, children: [_jsx(Dialog.Backdrop, { className: "!z-[calc(var(--z-dialog)+1)]" }), _jsx(Dialog.Positioner, { className: "!z-[calc(var(--z-dialog)+2)] flex items-center justify-center", children: _jsx(Dialog.Content, { className: "mx-auto h-fit max-w-[calc(100dvw-1rem)] overflow-y-auto rounded-lg bg-bg-primary lg:max-w-[400px]", children: _jsxs("div", { className: "p-3xl text-center", children: [_jsx("div", { className: "mx-auto w-fit rounded-full bg-bg-brand-secondary p-2", children: _jsx(FileX02Icon, { className: "text-shadow-text-brand" }) }), _jsx("h2", { className: "mt-4 font-semibold text-lg", children: "Account Verification Rejected!" }), _jsxs("div", { className: "mt-xs flex flex-col gap-4 text-sm", children: [_jsx("span", { className: "text-text-tertiary-600", children: "We're sorry, but your verification was rejected for the following reasons:" }), rejectionMessage?.title && rejectionMessage?.content ? (_jsxs("span", { children: [_jsxs("b", { children: [rejectionMessage?.title, ":"] }), _jsx("span", { className: "text-text-tertiary-600", dangerouslySetInnerHTML: {
24
24
  __html: rejectionMessage?.content ?? '',
25
25
  } })] })) : (_jsxs("div", { className: "flex flex-col gap-4 text-center text-text-tertiary-600", children: [_jsx("span", { children: "Missing Documents: Some required documents were not uploaded. Please ensure you provide all necessary files as outlined in our guidelines." }), _jsx("span", { children: "Unclear Images: The documents uploaded were blurry or not legible. Please re-upload clear, high-quality images where all text and details are visible." }), _jsx("span", { children: "To resolve this, double-check the document requirements and re-submit. If you're unsure about the guidelines or need further clarification, feel free to contact our support team for assistance. We're here to help!" })] }))] }), _jsx(Button, { type: "button", className: "mt-lg", onClick: () => {
26
26
  globalStore.kycVerificationRequired.setOpen(false);
@@ -22,7 +22,7 @@ import { Button } from '../../../ui/Button/index.js';
22
22
  import { Dialog } from '../../../ui/Dialog/index.js';
23
23
  import { Field } from '../../../ui/Field/index.js';
24
24
  import { getQueryClient } from '../../../utils/getQueryClient.js';
25
- import { getMemberVerificationQueryKey, getSessionQueryKey, } from '../../../utils/queryKeys.js';
25
+ import { getAccountQueryKey, getMemberVerificationQueryKey, getSessionQueryKey, } from '../../../utils/queryKeys.js';
26
26
  import { IdFrontImageField } from '../../shared/IdFrontImageField/index.js';
27
27
  import { SelfieImageField } from '../../shared/SelfieImageField/index.js';
28
28
  import { useKYCDefaultContext } from './KYCDefaultContext.js';
@@ -79,6 +79,14 @@ export function IdentityVerification() {
79
79
  status: 'CREATED',
80
80
  };
81
81
  });
82
+ queryClient.setQueryData(getAccountQueryKey(), (prev) => {
83
+ if (!prev)
84
+ return prev;
85
+ return {
86
+ ...prev,
87
+ status: 'ACTIVE',
88
+ };
89
+ });
82
90
  kyc.setStep(2);
83
91
  },
84
92
  onError: (error) => {
@@ -24,7 +24,7 @@ import { Checkbox } from '../../../ui/Checkbox/index.js';
24
24
  import { Dialog } from '../../../ui/Dialog/index.js';
25
25
  import { Field } from '../../../ui/Field/index.js';
26
26
  import { getQueryClient } from '../../../utils/getQueryClient.js';
27
- import { getMemberVerificationQueryKey, getSessionQueryKey, } from '../../../utils/queryKeys.js';
27
+ import { getAccountQueryKey, getMemberVerificationQueryKey, getSessionQueryKey, } from '../../../utils/queryKeys.js';
28
28
  import { useKYCDefaultContext } from './KYCDefaultContext.js';
29
29
  const definition = z.object({
30
30
  address: z.string().trim().min(1, 'Current address is required'),
@@ -39,6 +39,7 @@ export function PersonalInformation() {
39
39
  const globalStore = useGlobalStore(useShallow((ctx) => ({
40
40
  kyc: ctx.kyc,
41
41
  kycReminder: ctx.kycReminder,
42
+ kycAccountVerificationRequired: ctx.kycAccountVerificationRequired,
42
43
  })));
43
44
  const memberVerificationQuery = useMemberVerificationQuery();
44
45
  const memberVerificationId = memberVerificationQuery.data?.id;
@@ -78,8 +79,12 @@ export function PersonalInformation() {
78
79
  status: 'PENDING',
79
80
  };
80
81
  });
82
+ //refetch fresh data to show kyc reminder modal when verification lock & pending status
83
+ queryClient.invalidateQueries({ queryKey: getAccountQueryKey() });
81
84
  kyc.setDone(true);
82
85
  globalStore.kyc.setOpen(false);
86
+ globalStore.kycAccountVerificationRequired.setOpen(false);
87
+ globalStore.kycReminder.setOpen(true);
83
88
  toaster.success({
84
89
  title: 'Success',
85
90
  description: 'Personal information has been set successfully.',
@@ -93,8 +98,18 @@ export function PersonalInformation() {
93
98
  });
94
99
  },
95
100
  onSuccess() {
101
+ const queryClient = getQueryClient();
102
+ queryClient.setQueryData(getMemberVerificationQueryKey(), (prev) => {
103
+ if (!prev)
104
+ return prev;
105
+ return {
106
+ ...prev,
107
+ status: 'PENDING',
108
+ };
109
+ });
96
110
  kyc.setDone(true);
97
111
  globalStore.kyc.setOpen(false);
112
+ globalStore.kycAccountVerificationRequired.setOpen(false);
98
113
  toaster.success({
99
114
  title: 'Success',
100
115
  description: 'Personal information has been set successfully.',
@@ -32,6 +32,7 @@ export function KYCReminder(props) {
32
32
  responsibleGamingReminder: ctx.responsibleGamingReminder,
33
33
  disclaimer: ctx.disclaimer,
34
34
  termsOfUse: ctx.termsOfUse,
35
+ kycVerificationRequired: ctx.kycAccountVerificationRequired,
35
36
  })));
36
37
  const signOutMutation = useSignOutMutation({
37
38
  async onSuccess() {
@@ -64,7 +65,9 @@ export function KYCReminder(props) {
64
65
  }, [account?.dateTimeCreated]);
65
66
  const isAccountReady = !accountLoading;
66
67
  const isSessionReady = !sessionLoading && session?.status === 'authenticated';
67
- const isKYCReminderOpen = globalStore.kycReminder.open && !globalStore.kyc.open;
68
+ const isKYCReminderOpen = (globalStore.kycReminder.open || isVerificationLocked) &&
69
+ !globalStore.kyc.open &&
70
+ !globalStore.kycVerificationRequired.open;
68
71
  const isDisclaimerClosed = !globalStore.disclaimer.open && !globalStore.termsOfUse.open;
69
72
  const isKYCStateRelevant = isNotVerified ||
70
73
  (isPending && isVerificationLocked) ||
@@ -77,7 +80,7 @@ export function KYCReminder(props) {
77
80
  if (!details.open && isVerificationLocked)
78
81
  return;
79
82
  globalStore.kycReminder.setOpen(details.open);
80
- }, closeOnEscape: false, closeOnInteractOutside: false, lazyMount: true, unmountOnExit: true, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, { className: "z-[999]" }), _jsx(Dialog.Positioner, { className: "z-[999] flex items-center justify-center", children: _jsxs(Dialog.Content, { className: "mx-auto h-fit max-w-[calc(100dvw-1rem)] overflow-y-auto rounded-lg bg-bg-primary lg:max-w-[400px]", children: [!isPending && isNotVerified && isVerificationLocked && (_jsxs("div", { className: "p-3xl text-center", children: [_jsx("div", { className: "mx-auto mb-4 w-fit rounded-full p-2", children: _jsx(Image, { src: props.logo, alt: `${props.siteName} logo`, width: 200, height: 100, className: "mx-auto h-auto w-[120px]", draggable: false }) }), _jsx("h2", { className: `mt-4 font-semibold text-lg ${props.titleBgColor}`, children: "Temporarily Locked" }), _jsx("p", { className: `mt-xs text-sm text-text-tertiary-600 ${props.descriptionBgColor}`, children: "Your account has been locked due to incomplete verification. Please complete your verification to restore full access." }), _jsxs("div", { className: "mt-6 flex w-full items-center justify-center gap-3xl", children: [_jsx(Image, { src: props.pagcorLogo?.logo ?? pagcorLogo, alt: "PAGCOR logo", height: 88, width: 88, className: `h-[88px] w-auto shrink-0 ${props.pagcorLogo?.styles ?? ''}`, draggable: false, unoptimized: true }), _jsx(Image, { src: props.responsibleGamingLogo?.logo ?? responsibleGamingLogo, alt: "Responsible Gaming logo", height: 50, width: 186, className: `h-[50px] w-auto shrink-0 ${props.responsibleGamingLogo?.styles ?? ''}`, draggable: false, unoptimized: true })] }), _jsx(Dialog.Context, { children: (api) => (_jsxs("div", { className: "mt-6 space-y-lg", children: [_jsx(Button, { onClick: () => {
83
+ }, closeOnEscape: false, closeOnInteractOutside: false, lazyMount: true, unmountOnExit: true, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, { className: "!z-[calc(var(--z-dialog)+1)]" }), _jsx(Dialog.Positioner, { className: "!z-[calc(var(--z-dialog)+3)] flex items-center justify-center", children: _jsxs(Dialog.Content, { className: "mx-auto h-fit max-w-[calc(100dvw-1rem)] overflow-y-auto rounded-lg bg-bg-primary lg:max-w-[400px]", children: [!isPending && isNotVerified && isVerificationLocked && (_jsxs("div", { className: "p-3xl text-center", children: [_jsx("div", { className: "mx-auto mb-4 w-fit rounded-full p-2", children: _jsx(Image, { src: props.logo, alt: `${props.siteName} logo`, width: 200, height: 100, className: "mx-auto h-auto w-[120px]", draggable: false }) }), _jsx("h2", { className: `mt-4 font-semibold text-lg ${props.titleBgColor}`, children: "Temporarily Locked" }), _jsx("p", { className: `mt-xs text-sm text-text-tertiary-600 ${props.descriptionBgColor}`, children: "Your account has been locked due to incomplete verification. Please complete your verification to restore full access." }), _jsxs("div", { className: "mt-6 flex w-full items-center justify-center gap-3xl", children: [_jsx(Image, { src: props.pagcorLogo?.logo ?? pagcorLogo, alt: "PAGCOR logo", height: 88, width: 88, className: `h-[88px] w-auto shrink-0 ${props.pagcorLogo?.styles ?? ''}`, draggable: false, unoptimized: true }), _jsx(Image, { src: props.responsibleGamingLogo?.logo ?? responsibleGamingLogo, alt: "Responsible Gaming logo", height: 50, width: 186, className: `h-[50px] w-auto shrink-0 ${props.responsibleGamingLogo?.styles ?? ''}`, draggable: false, unoptimized: true })] }), _jsx(Dialog.Context, { children: (api) => (_jsxs("div", { className: "mt-6 space-y-lg", children: [_jsx(Button, { onClick: () => {
81
84
  api.setOpen(false);
82
85
  globalStore.kyc.setOpen(true);
83
86
  globalStore.kycReminder.setOpen(false);
@@ -3,7 +3,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import Image from 'next/image';
4
4
  import { useState } from 'react';
5
5
  import { useShallow } from 'zustand/shallow';
6
- import { useFeatureFlag } from '../../client/hooks/useFeatureFlag.js';
7
6
  import { useGlobalStore } from '../../client/hooks/useGlobalStore.js';
8
7
  import { getSession } from '../../client/services/getSession.js';
9
8
  import { toaster } from '../../client/utils/toaster.js';
@@ -16,9 +15,7 @@ import { Portal } from '../../ui/Portal/index.js';
16
15
  export function KYCReview() {
17
16
  const { kycReview } = useGlobalStore(useShallow((s) => ({ kycReview: s.kycReview })));
18
17
  const [isLoading, setIsLoading] = useState(false);
19
- const featureFlag = useFeatureFlag();
20
- const isDialogOpen = kycReview.open && featureFlag.enabled;
21
- return (_jsx(Dialog.Root, { open: isDialogOpen, lazyMount: true, unmountOnExit: true, closeOnEscape: false, closeOnInteractOutside: false, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, {}), _jsx(Dialog.Positioner, { className: "flex items-center", children: _jsxs(Dialog.Content, { className: "flex w-[375px] flex-col items-center justify-between space-y-4 rounded-lg bg-[#232443] p-6 text-center", children: [_jsxs("div", { className: "flex flex-col items-center", children: [_jsx("div", { className: "mb-4 h-7 w-7 animate-spin rounded-full border-4 border-[#101730] border-t-[#F05027]" }), _jsx("div", { className: "font-semibold text-[#F5F5F6] text-lg", children: "Thanks for your submission." }), _jsxs("div", { className: "mt-1 text-[#CECFD2] text-sm", children: ["We\u2019re now ", '', _jsxs("span", { className: "text-[#F96B47]", children: ["reviewing your KYC information ", ''] }), "and will notify you once the verification is complete."] }), _jsx("div", { className: "mt-6 text-[#CECFD2] text-sm", children: "In the meantime, you can watch your favorite series on CinePop!" })] }), _jsxs("div", { className: "pt-3", children: [_jsx(Image, { src: cinePopLogo, alt: "cine poplogo", width: 151, height: 24, className: "mx-auto mb-2 h-auto w-[151px]" }), _jsxs("div", { className: "flex gap-2", children: [_jsx(Image, { src: secretConfessionsLogo, alt: "secret confessions logo", width: 104, height: 53, className: "h-auto w-[104px]" }), _jsx(Image, { src: dearUtolLogo, alt: "dear utol logo", width: 105, height: 53, className: "h-auto w-[105px]" }), _jsx(Image, { src: mariasDiary, alt: "maria's diary logo", width: 104, height: 53, className: "h-auto w-[104px]" })] })] }), _jsx("button", { disabled: isLoading, type: "button", className: "h-[44px] w-full rounded-md font-semibold", style: {
18
+ return (_jsx(Dialog.Root, { open: kycReview.open, lazyMount: true, unmountOnExit: true, closeOnEscape: false, closeOnInteractOutside: false, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, {}), _jsx(Dialog.Positioner, { className: "flex items-center", children: _jsxs(Dialog.Content, { className: "flex w-[375px] flex-col items-center justify-between space-y-4 rounded-lg bg-[#232443] p-6 text-center", children: [_jsxs("div", { className: "flex flex-col items-center", children: [_jsx("div", { className: "mb-4 h-7 w-7 animate-spin rounded-full border-4 border-[#101730] border-t-[#F05027]" }), _jsx("div", { className: "font-semibold text-[#F5F5F6] text-lg", children: "Thanks for your submission." }), _jsxs("div", { className: "mt-1 text-[#CECFD2] text-sm", children: ["We\u2019re now ", '', _jsxs("span", { className: "text-[#F96B47]", children: ["reviewing your KYC information ", ''] }), "and will notify you once the verification is complete."] }), _jsx("div", { className: "mt-6 text-[#CECFD2] text-sm", children: "In the meantime, you can watch your favorite series on CinePop!" })] }), _jsxs("div", { className: "pt-3", children: [_jsx(Image, { src: cinePopLogo, alt: "cine poplogo", width: 151, height: 24, className: "mx-auto mb-2 h-auto w-[151px]" }), _jsxs("div", { className: "flex gap-2", children: [_jsx(Image, { src: secretConfessionsLogo, alt: "secret confessions logo", width: 104, height: 53, className: "h-auto w-[104px]" }), _jsx(Image, { src: dearUtolLogo, alt: "dear utol logo", width: 105, height: 53, className: "h-auto w-[105px]" }), _jsx(Image, { src: mariasDiary, alt: "maria's diary logo", width: 104, height: 53, className: "h-auto w-[104px]" })] })] }), _jsx("button", { disabled: isLoading, type: "button", className: "h-[44px] w-full rounded-md font-semibold", style: {
22
19
  background: 'linear-gradient(90deg, #9333E8 0%, #D92778 100%)',
23
20
  }, onClick: async () => {
24
21
  const session = await getSession();
@@ -32,7 +29,7 @@ export function KYCReview() {
32
29
  'Content-Type': 'application/json',
33
30
  },
34
31
  });
35
- const data = (await response.json());
32
+ const data = await response.json();
36
33
  window.open(data.data.redirectionUrl, '_blank');
37
34
  }
38
35
  catch {
@@ -4,6 +4,7 @@ import Link from 'next/link';
4
4
  import { useEffect, useState } from 'react';
5
5
  import { useInterval } from 'usehooks-ts';
6
6
  import { useShallow } from 'zustand/shallow';
7
+ import { useAccountQuery } from '../../client/hooks/useAccountQuery.js';
7
8
  import { useDisclosure } from '../../client/hooks/useDisclosure.js';
8
9
  import { useGlobalStore } from '../../client/hooks/useGlobalStore.js';
9
10
  import { useMarkMessageAsReadMutation } from '../../client/hooks/useMarkMessageAsReadMutation.js';
@@ -39,6 +40,8 @@ export function MessagesPopup() {
39
40
  signUp: ctx.signUp,
40
41
  })));
41
42
  const markMessageAsReadMutation = useMarkMessageAsReadMutation();
43
+ const accountQuery = useAccountQuery();
44
+ const isVerificationLocked = accountQuery.data?.status === 'VERIFICATION_LOCKED';
42
45
  const [paused, setPaused] = useState(false);
43
46
  const [numberOfUnreadMessages, setNumberOfUnreadMessages] = useState(0);
44
47
  useInterval(() => {
@@ -105,7 +108,7 @@ export function MessagesPopup() {
105
108
  if (messages.length <= 0)
106
109
  return;
107
110
  disclosure.setOpen(true);
108
- }, !disclosure.open && !paused ? 3000 : null);
111
+ }, !disclosure.open && !paused && !isVerificationLocked ? 3000 : null);
109
112
  // Resume showing messages if the number of unread messages changes
110
113
  if (messages.length > numberOfUnreadMessages && paused) {
111
114
  setPaused(false);
@@ -131,7 +134,8 @@ export function MessagesPopup() {
131
134
  return (_jsx(Dialog.Root, { open: disclosure.open &&
132
135
  !paused &&
133
136
  isKycClosed &&
134
- isResponsibleGamingReminderClosed, onOpenChange: (details) => {
137
+ isResponsibleGamingReminderClosed &&
138
+ !isVerificationLocked, onOpenChange: (details) => {
135
139
  disclosure.setOpen(details.open);
136
140
  }, closeOnInteractOutside: false, lazyMount: true, unmountOnExit: true, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, { className: "!z-[calc(var(--z-dialog)+3)]" }), _jsx(Dialog.Positioner, { className: "!z-[calc(var(--z-dialog)+4)] flex items-center justify-center", children: _jsxs(Dialog.Content, { className: "mx-auto max-h-[80vh] min-w-[21.438rem] max-w-[21.438rem] overflow-y-auto rounded-xl p-3xl lg:min-w-[25rem] lg:max-w-[25rem]", children: [_jsx(Dialog.CloseTrigger, { children: _jsx(XIcon, {}) }), _jsxs(Carousel.Root, { page: index, onPageChange: (details) => {
137
141
  setIndex(details.page);
@@ -19,6 +19,7 @@ export function TermsOfUseV2({ logo, content }) {
19
19
  disclaimer: ctx.disclaimer,
20
20
  termsOfUse: ctx.termsOfUse,
21
21
  responsibleGaming: ctx.responsibleGaming,
22
+ kycVerificationRequired: ctx.kyc,
22
23
  })));
23
24
  useEffect(() => {
24
25
  if (scrollableContentRef.current) {
@@ -47,7 +48,7 @@ export function TermsOfUseV2({ logo, content }) {
47
48
  globalStore.disclaimer.setOpen(true);
48
49
  }
49
50
  globalStore.termsOfUse.setNext(null);
50
- }, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, { className: "z-popover" }), _jsx(Dialog.Positioner, { className: "z-popover", children: _jsxs(Dialog.Content, { className: twMerge('relative flex h-full w-full flex-col items-start overflow-hidden bg-bg-primary p-4 sm:p-6 lg:mx-auto lg:max-h-[90vh] lg:w-[500px] lg:p-3xl', 'scrollbar:h-2 scrollbar:w-2 scrollbar-thumb:rounded-full scrollbar-thumb:bg-bg-quaternary scrollbar-track:bg-transparent'), children: [_jsx(Image, { src: logo, alt: "", width: 250, height: 150, className: "mx-auto h-auto w-20 sm:w-24 lg:w-[7.5rem]", draggable: false }), _jsxs("div", { className: "relative flex h-full w-full flex-col overflow-hidden", children: [_jsx(Dialog.Title, { className: "my-3 text-center font-semibold text-brand-400 sm:mt-6 sm:text-lg lg:my-xl lg:text-2xl", children: "Terms of Use" }), _jsx("div", { className: "flex min-h-0 flex-1 flex-col rounded-md bg-bg-primary-alt px-2 py-2", children: _jsxs("div", { ref: scrollableContentRef, className: "mt-2 scrollbar:h-2 scrollbar:w-2 flex-1 overflow-y-auto scrollbar-thumb:rounded-full scrollbar-track:rounded-full bg-bg-primary-alt scrollbar-thumb:bg-bg-quaternary scrollbar-track:bg-bg-primary p-3 pr-4 sm:mt-xs sm:p-4", onScroll: (e) => {
51
+ }, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, { className: "!z-[calc(var(--z-dialog)+1)]" }), _jsx(Dialog.Positioner, { className: "!z-[calc(var(--z-dialog)+3)]", children: _jsxs(Dialog.Content, { className: twMerge('relative flex h-full w-full flex-col items-start overflow-hidden bg-bg-primary p-4 sm:p-6 lg:mx-auto lg:max-h-[90vh] lg:w-[500px] lg:p-3xl', 'scrollbar:h-2 scrollbar:w-2 scrollbar-thumb:rounded-full scrollbar-thumb:bg-bg-quaternary scrollbar-track:bg-transparent'), children: [_jsx(Image, { src: logo, alt: "", width: 250, height: 150, className: "mx-auto h-auto w-20 sm:w-24 lg:w-[7.5rem]", draggable: false }), _jsxs("div", { className: "relative flex h-full w-full flex-col overflow-hidden", children: [_jsx(Dialog.Title, { className: "my-3 text-center font-semibold text-brand-400 sm:mt-6 sm:text-lg lg:my-xl lg:text-2xl", children: "Terms of Use" }), _jsx("div", { className: "flex min-h-0 flex-1 flex-col rounded-md bg-bg-primary-alt px-2 py-2", children: _jsxs("div", { ref: scrollableContentRef, className: "mt-2 scrollbar:h-2 scrollbar:w-2 flex-1 overflow-y-auto scrollbar-thumb:rounded-full scrollbar-track:rounded-full bg-bg-primary-alt scrollbar-thumb:bg-bg-quaternary scrollbar-track:bg-bg-primary p-3 pr-4 sm:mt-xs sm:p-4", onScroll: (e) => {
51
52
  const { scrollTop, scrollHeight, clientHeight } = e.currentTarget;
52
53
  if (Math.abs(scrollHeight - clientHeight - scrollTop) < 1) {
53
54
  setHasReachedBottom(true);
@@ -8,24 +8,24 @@ export declare const createForgotPasswordSchema: (mobileNumberParser: MobileNumb
8
8
  mobileNumber: z.ZodEffects<z.ZodString, string, string>;
9
9
  verificationCode: z.ZodEffects<z.ZodString, string, string>;
10
10
  }, "strip", z.ZodTypeAny, {
11
- mobileNumber: string;
12
11
  password: string;
13
12
  verificationCode: string;
13
+ mobileNumber: string;
14
14
  confirmPassword: string;
15
15
  }, {
16
- mobileNumber: string;
17
16
  password: string;
18
17
  verificationCode: string;
18
+ mobileNumber: string;
19
19
  confirmPassword: string;
20
20
  }>, {
21
- mobileNumber: string;
22
21
  password: string;
23
22
  verificationCode: string;
23
+ mobileNumber: string;
24
24
  confirmPassword: string;
25
25
  }, {
26
- mobileNumber: string;
27
26
  password: string;
28
27
  verificationCode: string;
28
+ mobileNumber: string;
29
29
  confirmPassword: string;
30
30
  }>;
31
31
  export type ForgotPasswordSchema = z.infer<ReturnType<typeof createForgotPasswordSchema>>;