@opexa/portal-components 0.0.312 → 0.0.314

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 (49) hide show
  1. package/dist/client/hooks/useFileQuery.js +5 -5
  2. package/dist/client/hooks/useGenerateSumsubVerificationTokenMutation.d.ts +2 -0
  3. package/dist/client/hooks/useGenerateSumsubVerificationTokenMutation.js +19 -0
  4. package/dist/client/hooks/useGlobalStore.d.ts +25 -1
  5. package/dist/client/hooks/useGlobalStore.js +3 -2
  6. package/dist/components/AccountVerification/AccountVerification.js +33 -21
  7. package/dist/components/Banner/Banner.d.ts +5 -0
  8. package/dist/components/Banner/Banner.js +3 -0
  9. package/dist/components/DigitainLauncher/DigitainLauncher.d.ts +2 -0
  10. package/dist/components/DigitainLauncher/DigitainLauncher.js +1 -1
  11. package/dist/components/DigitainLauncher/DigitianContainter.d.ts +2 -0
  12. package/dist/components/DigitainLauncher/DigitianContainter.js +2 -2
  13. package/dist/components/DigitainLauncher/Fallback.d.ts +4 -1
  14. package/dist/components/DigitainLauncher/Fallback.js +11 -11
  15. package/dist/components/KYC/KYC.d.ts +4 -3
  16. package/dist/components/KYC/KYC.js +10 -3
  17. package/dist/components/KYC/KYCDefault/BasicInformation.d.ts +1 -0
  18. package/dist/components/KYC/KYCDefault/BasicInformation.js +101 -0
  19. package/dist/components/KYC/KYCDefault/IdentityVerification.d.ts +1 -0
  20. package/dist/components/KYC/KYCDefault/IdentityVerification.js +120 -0
  21. package/dist/components/KYC/KYCDefault/Indicator.d.ts +1 -0
  22. package/dist/components/KYC/KYCDefault/Indicator.js +8 -0
  23. package/dist/components/KYC/KYCDefault/KYCDefault.d.ts +7 -0
  24. package/dist/components/KYC/KYCDefault/KYCDefault.js +45 -0
  25. package/dist/components/KYC/KYCDefault/KYCDefaultContext.d.ts +6 -0
  26. package/dist/components/KYC/KYCDefault/KYCDefaultContext.js +2 -0
  27. package/dist/components/KYC/KYCDefault/PersonalInformation.d.ts +1 -0
  28. package/dist/components/KYC/KYCDefault/PersonalInformation.js +122 -0
  29. package/dist/components/KYC/KYCDefault/index.d.ts +1 -0
  30. package/dist/components/KYC/KYCDefault/index.js +1 -0
  31. package/dist/components/KYC/KYCDefault/useKYCDefault.d.ts +25 -0
  32. package/dist/components/KYC/KYCDefault/useKYCDefault.js +38 -0
  33. package/dist/components/KYC/KYCReminder.d.ts +1 -0
  34. package/dist/components/KYC/KYCReminder.lazy.js +3 -3
  35. package/dist/components/KYC/KYCSumsub.d.ts +5 -0
  36. package/dist/components/KYC/KYCSumsub.js +54 -0
  37. package/dist/components/KYC/index.d.ts +0 -1
  38. package/dist/components/KYC/index.js +0 -1
  39. package/dist/next.config.js +1 -0
  40. package/dist/services/account.d.ts +4 -0
  41. package/dist/services/account.js +5 -1
  42. package/dist/services/queries.d.ts +1 -0
  43. package/dist/services/queries.js +5 -0
  44. package/dist/ui/Dialog/Dialog.d.ts +88 -88
  45. package/dist/ui/Dialog/dialog.recipe.d.ts +8 -8
  46. package/dist/ui/Dialog/dialog.recipe.js +1 -1
  47. package/dist/utils/mutationKeys.d.ts +1 -0
  48. package/dist/utils/mutationKeys.js +1 -0
  49. package/package.json +3 -1
@@ -0,0 +1,45 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import Image from 'next/image';
3
+ import { useEffect } from 'react';
4
+ import { useShallow } from 'zustand/shallow';
5
+ import { useAccountQuery } from '../../../client/hooks/useAccountQuery.js';
6
+ import { useGlobalStore } from '../../../client/hooks/useGlobalStore.js';
7
+ import { useMemberVerificationQuery } from '../../../client/hooks/useMemberVerificationQuery.js';
8
+ import { XIcon } from '../../../icons/XIcon.js';
9
+ import { Dialog } from '../../../ui/Dialog/index.js';
10
+ import { Portal } from '../../../ui/Portal/index.js';
11
+ import { KYCReminder } from '../KYCReminder.js';
12
+ import { BasicInformation } from './BasicInformation.js';
13
+ import { IdentityVerification } from './IdentityVerification.js';
14
+ import { Indicator } from './Indicator.js';
15
+ import { KYCDefaultContext } from './KYCDefaultContext.js';
16
+ import { PersonalInformation } from './PersonalInformation.js';
17
+ import { useKYCDefault } from './useKYCDefault.js';
18
+ export function KYCDefault(props) {
19
+ const globalStore = useGlobalStore(useShallow((ctx) => ({ kyc: ctx.kyc })));
20
+ const kyc = useKYCDefault();
21
+ const { data: account } = useAccountQuery();
22
+ const { data: verification } = useMemberVerificationQuery();
23
+ const isBasicInfoCompleted = account?.realName !== null && account?.birthDay !== null;
24
+ const isUploadCompleted = verification?.idFrontImage && verification?.selfieImage;
25
+ const isVerified = verification?.status === 'VERIFIED' ||
26
+ verification?.status === 'PENDING' ||
27
+ verification?.status === 'APPROVED';
28
+ const isRejected = verification?.status === 'REJECTED';
29
+ const hasMissingData = !isBasicInfoCompleted || !isUploadCompleted || !isVerified;
30
+ const steps = !isBasicInfoCompleted
31
+ ? 1
32
+ : !isUploadCompleted
33
+ ? 2
34
+ : isRejected
35
+ ? 2
36
+ : 3;
37
+ useEffect(() => {
38
+ if (steps) {
39
+ kyc.setStep(steps);
40
+ }
41
+ }, [steps, kyc]);
42
+ return (_jsxs(_Fragment, { children: [_jsx(KYCDefaultContext, { value: kyc, children: _jsx(Dialog.Root, { open: globalStore.kyc.open && hasMissingData, onOpenChange: (details) => {
43
+ globalStore.kyc.setOpen(details.open);
44
+ }, lazyMount: true, unmountOnExit: true, closeOnEscape: false, closeOnInteractOutside: false, onExitComplete: kyc.reset, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, {}), _jsx(Dialog.Positioner, { children: _jsx(Dialog.Content, { className: "mx-auto min-h-full w-full overflow-y-auto bg-bg-primary-alt lg:min-h-auto lg:w-fit", children: _jsxs("div", { className: "flex h-dvh w-full flex-col overflow-y-auto p-3xl sm:h-fit sm:overflow-auto lg:w-[400px]", children: [_jsx(Dialog.CloseTrigger, { children: _jsx(XIcon, {}) }), _jsx(Image, { src: props.logo, alt: "", width: 200, height: 100, className: "mx-auto mb-5 block h-7.5 w-auto", draggable: false }), _jsx(Indicator, {}), kyc.step === 1 && _jsx(BasicInformation, {}), kyc.step === 2 && _jsx(IdentityVerification, {}), kyc.step === 3 && _jsx(PersonalInformation, {})] }) }) })] }) }) }), _jsx(KYCReminder, { ...props })] }));
45
+ }
@@ -0,0 +1,6 @@
1
+ import type { UseKYCDefaultReturn } from './useKYCDefault';
2
+ export declare const KYCDefaultContext: (props: {
3
+ value: UseKYCDefaultReturn;
4
+ } & {
5
+ children?: import("react").ReactNode | undefined;
6
+ }) => React.ReactNode, useKYCDefaultContext: () => UseKYCDefaultReturn;
@@ -0,0 +1,2 @@
1
+ import { createContext } from '../../../client/utils/createContext.js';
2
+ export const [KYCDefaultContext, useKYCDefaultContext] = createContext();
@@ -0,0 +1 @@
1
+ export declare function PersonalInformation(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,122 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { zodResolver } from '@hookform/resolvers/zod';
3
+ import { useForm } from 'react-hook-form';
4
+ import { z } from 'zod';
5
+ import { useShallow } from 'zustand/shallow';
6
+ import { useApproveMemberVerification } from '../../../client/hooks/useApproveMemberVerification.js';
7
+ import { useCreateMemberVerificationMutation } from '../../../client/hooks/useCreateMemberVerificationMutation.js';
8
+ import { useGlobalStore } from '../../../client/hooks/useGlobalStore.js';
9
+ import { useMemberVerificationQuery } from '../../../client/hooks/useMemberVerificationQuery.js';
10
+ import { useUpdateMemberVerificationMutation } from '../../../client/hooks/useUpdateMemberVerificationMutation.js';
11
+ import { toaster } from '../../../client/utils/toaster.js';
12
+ import { CheckIcon } from '../../../icons/CheckIcon.js';
13
+ import { Button } from '../../../ui/Button/index.js';
14
+ import { Checkbox } from '../../../ui/Checkbox/index.js';
15
+ import { Dialog } from '../../../ui/Dialog/index.js';
16
+ import { Field } from '../../../ui/Field/index.js';
17
+ import { getQueryClient } from '../../../utils/getQueryClient.js';
18
+ import { getMemberVerificationQueryKey } from '../../../utils/queryKeys.js';
19
+ import { useKYCDefaultContext } from './KYCDefaultContext.js';
20
+ const definition = z.object({
21
+ address: z.string().trim().min(1, 'Current address is required'),
22
+ permanentAddress: z.string().trim().min(1, 'Permanent address is required'),
23
+ sourceOfIncome: z.string().trim().min(1, 'Source of Income is required'),
24
+ natureOfWork: z.string().trim().min(1, 'Nature of Work is required'),
25
+ placeOfBirth: z.string().trim().min(1, 'Place of Birth is required'),
26
+ nationality: z.string().trim().min(1, 'Nationality is required'),
27
+ });
28
+ export function PersonalInformation() {
29
+ const kyc = useKYCDefaultContext();
30
+ const globalStore = useGlobalStore(useShallow((ctx) => ({
31
+ kyc: ctx.kyc,
32
+ })));
33
+ const memberVerificationQuery = useMemberVerificationQuery();
34
+ const memberVerificationId = memberVerificationQuery.data?.id;
35
+ const approveMemberVerificationMutation = useApproveMemberVerification();
36
+ const updateMemberVerificationMutation = useUpdateMemberVerificationMutation({
37
+ onError(error) {
38
+ toaster.error({
39
+ description: error.message,
40
+ });
41
+ },
42
+ onSuccess() {
43
+ const queryClient = getQueryClient();
44
+ queryClient.setQueryData(getMemberVerificationQueryKey(), (prev) => {
45
+ if (!prev)
46
+ return prev;
47
+ return {
48
+ ...prev,
49
+ status: 'PENDING',
50
+ };
51
+ });
52
+ kyc.setDone(true);
53
+ globalStore.kyc.setOpen(false);
54
+ toaster.success({
55
+ title: 'Success',
56
+ description: 'Personal information has been set successfully.',
57
+ });
58
+ },
59
+ });
60
+ const createMemberVerificationMutation = useCreateMemberVerificationMutation({
61
+ onError(error) {
62
+ toaster.error({
63
+ description: error.message,
64
+ });
65
+ },
66
+ onSuccess() {
67
+ kyc.setDone(true);
68
+ globalStore.kyc.setOpen(false);
69
+ toaster.success({
70
+ title: 'Success',
71
+ description: 'Personal information has been set successfully.',
72
+ });
73
+ },
74
+ });
75
+ const form = useForm({
76
+ resolver: zodResolver(definition),
77
+ defaultValues: {
78
+ address: '',
79
+ nationality: '',
80
+ natureOfWork: '',
81
+ placeOfBirth: '',
82
+ permanentAddress: '',
83
+ },
84
+ mode: 'all',
85
+ });
86
+ async function onSubmit(values) {
87
+ if (!memberVerificationId) {
88
+ createMemberVerificationMutation.mutate({
89
+ ...values,
90
+ });
91
+ }
92
+ else {
93
+ await updateMemberVerificationMutation.mutateAsync({
94
+ id: memberVerificationId,
95
+ data: {
96
+ ...values,
97
+ },
98
+ });
99
+ //approve status of member to be pending
100
+ await approveMemberVerificationMutation.mutateAsync({
101
+ id: memberVerificationId,
102
+ });
103
+ }
104
+ }
105
+ const address = form.watch('address');
106
+ const permanentAddress = form.watch('permanentAddress');
107
+ return (_jsxs("div", { children: [_jsx(Dialog.Title, { className: "text-center font-semibold text-lg", children: "Personal Information" }), _jsx(Dialog.Description, { className: "mt-xs text-center text-sm text-text-secondary-700", children: "Provide your basic details and work info." }), _jsxs("form", { className: "mt-7", onSubmit: form.handleSubmit(onSubmit), children: [_jsxs(Field.Root, { invalid: !!form.formState.errors.permanentAddress, children: [_jsx(Field.Label, { children: "Permanent address" }), _jsx(Field.Input, { placeholder: "Enter your permanent address", ...form.register('permanentAddress') }), _jsx(Field.ErrorText, { children: form.formState.errors.permanentAddress?.message })] }), _jsxs(Field.Root, { className: "mt-2xl", invalid: !!form.formState.errors.address, children: [_jsx(Field.Label, { children: "Current address" }), _jsx(Field.Input, { placeholder: "Enter your current address", ...form.register('address') }), _jsx(Field.ErrorText, { children: form.formState.errors.address?.message })] }), _jsxs(Checkbox.Root, { className: "mt-md", checked: address !== '' &&
108
+ permanentAddress !== '' &&
109
+ address === permanentAddress, onCheckedChange: (details) => {
110
+ if (details.checked === true) {
111
+ form.setValue('address', form.getValues('permanentAddress'), {
112
+ shouldDirty: true,
113
+ shouldTouch: true,
114
+ shouldValidate: true,
115
+ });
116
+ }
117
+ }, disabled: !permanentAddress, children: [_jsx(Checkbox.Control, { children: _jsx(Checkbox.Indicator, { asChild: true, children: _jsx(CheckIcon, {}) }) }), _jsx(Checkbox.Label, { children: "Use permanent address as current address" }), _jsx(Checkbox.HiddenInput, {})] }), _jsxs(Field.Root, { className: "mt-2xl", invalid: !!form.formState.errors.sourceOfIncome, children: [_jsx(Field.Label, { children: "Source of income" }), _jsx(Field.Input, { placeholder: "Enter your source of income", ...form.register('sourceOfIncome') }), _jsx(Field.ErrorText, { children: form.formState.errors.sourceOfIncome?.message })] }), _jsxs(Field.Root, { className: "mt-2xl", invalid: !!form.formState.errors.natureOfWork, children: [_jsx(Field.Label, { children: "Work Description" }), _jsx(Field.Input, { placeholder: "Enter your work description", ...form.register('natureOfWork') }), _jsx(Field.ErrorText, { children: form.formState.errors.natureOfWork?.message })] }), _jsxs(Field.Root, { className: "mt-2xl", invalid: !!form.formState.errors.placeOfBirth, children: [_jsx(Field.Label, { children: "Place of birth" }), _jsx(Field.Input, { placeholder: "Enter your place of birth", ...form.register('placeOfBirth') }), _jsx(Field.ErrorText, { children: form.formState.errors.placeOfBirth?.message })] }), _jsxs(Field.Root, { className: "mt-2xl", invalid: !!form.formState.errors.nationality, children: [_jsx(Field.Label, { children: "Nationality" }), _jsx(Field.Input, { placeholder: "Enter your nationality", ...form.register('nationality') }), _jsx(Field.ErrorText, { children: form.formState.errors.nationality?.message })] }), _jsx(Button, { type: "submit", className: "mt-4xl", disabled: updateMemberVerificationMutation.isPending ||
118
+ createMemberVerificationMutation.isPending, children: "Continue" }), _jsx(Button, { variant: "outline", colorScheme: "gray", className: "mt-lg", onClick: () => {
119
+ globalStore.kyc.setOpen(false);
120
+ }, disabled: updateMemberVerificationMutation.isPending ||
121
+ createMemberVerificationMutation.isPending, children: "Skip for now" })] })] }));
122
+ }
@@ -0,0 +1 @@
1
+ export * from './KYCDefault';
@@ -0,0 +1 @@
1
+ export * from './KYCDefault.js';
@@ -0,0 +1,25 @@
1
+ type EventDetail = {
2
+ type: 'SELFIE_CAPTURED';
3
+ data: string;
4
+ } | {
5
+ type: 'ID_DOCUMENT_CAPTURED';
6
+ data: string;
7
+ };
8
+ type UnsubscribeFn = () => void;
9
+ type Subscriber = (detail: EventDetail) => UnsubscribeFn;
10
+ export type CaptureSubject = 'SELFIE' | 'ID_DOCUMENT';
11
+ export interface UseKYCDefaultReturn {
12
+ step: number;
13
+ setStep: (step: number) => void;
14
+ done: boolean;
15
+ setDone: (done: boolean) => void;
16
+ subscribe: (subscriber: Subscriber) => UnsubscribeFn;
17
+ triggerEvent: (detail: EventDetail) => void;
18
+ idFrontImageId: string | null;
19
+ setFrontImageId: (id: string | null) => void;
20
+ selfieImageId: string | null;
21
+ setSelfieImageId: (id: string | null) => void;
22
+ reset: () => void;
23
+ }
24
+ export declare function useKYCDefault(): UseKYCDefaultReturn;
25
+ export {};
@@ -0,0 +1,38 @@
1
+ import { useRef, useState } from 'react';
2
+ export function useKYCDefault() {
3
+ const [step, setStep] = useState(2);
4
+ const [done, setDone] = useState(false);
5
+ const [idFrontImageId, setFrontImageId] = useState(null);
6
+ const [selfieImageId, setSelfieImageId] = useState(null);
7
+ const subscribers = useRef([]);
8
+ const subscribe = (subscriber) => {
9
+ subscribers.current.push(subscriber);
10
+ return () => {
11
+ subscribers.current = subscribers.current.filter((item) => item !== subscriber);
12
+ };
13
+ };
14
+ const triggerEvent = (detail) => {
15
+ subscribers.current.forEach((subscriber) => {
16
+ subscriber(detail);
17
+ });
18
+ };
19
+ const reset = () => {
20
+ setStep(1);
21
+ setDone(false);
22
+ setFrontImageId(null);
23
+ setSelfieImageId(null);
24
+ };
25
+ return {
26
+ step,
27
+ setStep,
28
+ done,
29
+ setDone,
30
+ idFrontImageId,
31
+ setFrontImageId,
32
+ selfieImageId,
33
+ setSelfieImageId,
34
+ subscribe,
35
+ triggerEvent,
36
+ reset,
37
+ };
38
+ }
@@ -1,2 +1,3 @@
1
1
  import type { KYCReminderProps } from './KYCReminder.lazy';
2
2
  export declare function KYCReminder(props: KYCReminderProps): import("react/jsx-runtime").JSX.Element | undefined;
3
+ export type { KYCReminderProps };
@@ -21,9 +21,9 @@ export function KYCReminder(props) {
21
21
  const isUploadCompleted = verification &&
22
22
  verification.idFrontImage !== null &&
23
23
  verification.selfieImage !== null;
24
- const isVerified = Boolean(verification?.status === 'VERIFIED') ||
25
- Boolean(verification?.status === 'PENDING') ||
26
- Boolean(verification?.status === 'APPROVED');
24
+ const isVerified = verification?.status === 'VERIFIED' ||
25
+ verification?.status === 'PENDING' ||
26
+ verification?.status === 'APPROVED';
27
27
  const hasMissingData = !isBasicInfoCompleted || !isUploadCompleted || !isVerified;
28
28
  return (_jsx(Dialog.Root, { open: globalStore.kycReminder.open &&
29
29
  !sessionLoading &&
@@ -0,0 +1,5 @@
1
+ import { type KYCReminderProps } from './KYCReminder';
2
+ export interface KYCSumsubProps extends KYCReminderProps {
3
+ provider: 'sumsub';
4
+ }
5
+ export declare function KYCSumsub(props: KYCSumsubProps): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import Sumsub from '@sumsub/websdk-react';
3
+ import { useEffect, useState } from 'react';
4
+ import { useShallow } from 'zustand/shallow';
5
+ import { useGenerateSumsubVerificationTokenMutation } from '../../client/hooks/useGenerateSumsubVerificationTokenMutation.js';
6
+ import { useGlobalStore } from '../../client/hooks/useGlobalStore.js';
7
+ import { Spinner02Icon } from '../../icons/Spinner02Icon.js';
8
+ import { XIcon } from '../../icons/XIcon.js';
9
+ import { Dialog } from '../../ui/Dialog/index.js';
10
+ import { Portal } from '../../ui/Portal/index.js';
11
+ import { KYCReminder } from './KYCReminder.js';
12
+ export function KYCSumsub(props) {
13
+ const [open, setOpen] = useGlobalStore(useShallow((ctx) => [ctx.kyc.open, ctx.kyc.setOpen]));
14
+ const { mutate, mutateAsync, reset, isPending, isIdle } = useGenerateSumsubVerificationTokenMutation();
15
+ const [token, setToken] = useState('');
16
+ useEffect(() => {
17
+ if (open === true && isIdle && !token) {
18
+ mutate(undefined, {
19
+ onSuccess(token) {
20
+ setToken(token);
21
+ },
22
+ });
23
+ }
24
+ }, [
25
+ /**/
26
+ open,
27
+ token,
28
+ isIdle,
29
+ mutate,
30
+ ]);
31
+ return (_jsxs(_Fragment, { children: [_jsx(Dialog.Root, { open: open, onOpenChange: (details) => {
32
+ setOpen(details.open);
33
+ }, lazyMount: true, unmountOnExit: true, closeOnEscape: false, closeOnInteractOutside: false, onExitComplete: () => {
34
+ reset();
35
+ setToken('');
36
+ }, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, {}), _jsx(Dialog.Positioner, { className: "flex items-center justify-center lg:block", children: _jsxs(Dialog.Content, { className: "mx-auto flex h-full w-[calc(100%-2rem)] flex-col items-center justify-center overflow-y-auto rounded-md bg-transparent p-0 lg:mt-3 lg:block lg:h-auto lg:w-[600px]", children: [_jsx(Dialog.Context, { children: (api) => (_jsx("div", { className: "mb-3 flex w-full justify-end", children: _jsxs("button", { type: "button", className: "rounded-full bg-white/10 p-1 text-white backdrop-blur-md", onClick: () => {
37
+ api.setOpen(false);
38
+ }, children: [_jsx(XIcon, { className: "!size-5" }), _jsx("span", { className: "sr-only", children: "Close" })] }) })) }), isPending ? (_jsx("div", { className: "w-full rounded-md bg-[#20252c] px-4 py-12", children: _jsx(Spinner02Icon, { className: "mx-auto size-8" }) })) : (_jsx("div", { className: "max-h-[calc(96dvh-2rem)] w-full overflow-y-auto lg:h-auto lg:max-h-[unset]", children: _jsx(Sumsub, { accessToken: token, expirationHandler: async () => {
39
+ const token = await mutateAsync();
40
+ return token;
41
+ }, config: {
42
+ lang: 'en',
43
+ theme: 'dark',
44
+ }, options: {
45
+ debug: process.env.NODE_ENV === 'development',
46
+ addViewportTag: false,
47
+ adaptIframeHeight: true,
48
+ enableScrollIntoView: true,
49
+ }, onMessage: (type, payload) => {
50
+ console.log({ type, payload });
51
+ }, onError: (error) => {
52
+ console.warn(error);
53
+ }, className: "block max-h-full w-full overflow-y-auto rounded-md", force: true }) }))] }) })] }) }), _jsx(KYCReminder, { ...props })] }));
54
+ }
@@ -1,3 +1,2 @@
1
1
  export * from './KYC';
2
- export * from './KYCReminder';
3
2
  export * from './KYCTrigger';
@@ -1,3 +1,2 @@
1
1
  export * from './KYC.js';
2
- export * from './KYCReminder.js';
3
2
  export * from './KYCTrigger.js';
@@ -20,6 +20,7 @@ export const config = {
20
20
  nodeMiddleware: true,
21
21
  },
22
22
  poweredByHeader: false,
23
+ reactStrictMode: false,
23
24
  compiler: {
24
25
  removeConsole: process.env.NODE_ENV === 'production',
25
26
  },
@@ -360,3 +360,7 @@ export interface GoogleClientIdQuery {
360
360
  googleClientId?: string | null;
361
361
  }
362
362
  export declare const getGoogleClientId: (options?: GraphQLRequestOptions) => Promise<string | null>;
363
+ export interface GenerateSumsubVerificationTokenMutation {
364
+ generateSumsubVerificationToken: string;
365
+ }
366
+ export declare const generateSumsubVerificationToken: (options?: GraphQLRequestOptions) => Promise<string>;
@@ -1,7 +1,7 @@
1
1
  import { cache } from 'react';
2
2
  import { ACCOUNT_GRAPHQL_ENDPOINT } from '../constants/index.js';
3
3
  import { graphqlRequest } from './graphqlRequest.js';
4
- import { ANNOUNCEMENTS, APPROVE_MEMBER_VERIFICATION__NEXT, CREATE_MEMBER_VERIFICATION, CREATE_MEMBER_VERIFICATION__NEXT, DELETE_MEMBER_ACCOUNT, GOOGLE_CLIENT_ID, MEMBER_ACCOUNT, MEMBER_VERIFICATION, PAYMENT_SETTINGS, POINTS_CLUB_SETTINGS, PROFILE_COMPLETION, REFERRAL_CODE, REGISTER_MAYA_MEMBER_ACCOUNT, REGISTER_MEMBER_ACCOUNT, REGISTER_MEMBER_ACCOUNT__NEXT, REGISTER_MEMBER_ACCOUNT_BY_MOBILE_NUMBER, REGISTER_MEMBER_ACCOUNT_BY_NAME, REGISTER_MEMBER_ACCOUNT_VIA_MOBILE, RESET_PASSWORD, UPDATE_MEMBER_ACCOUNT, UPDATE_MEMBER_VERIFICATION, UPDATE_MEMBER_VERIFICATION__NEXT, UPDATE_REFERRAL_CODE, VERIFY_MOBILE_NUMBER, } from './queries.js';
4
+ import { ANNOUNCEMENTS, APPROVE_MEMBER_VERIFICATION__NEXT, CREATE_MEMBER_VERIFICATION, CREATE_MEMBER_VERIFICATION__NEXT, DELETE_MEMBER_ACCOUNT, GENERATE_SUMSUB_VERIFICATION_TOKEN, GOOGLE_CLIENT_ID, MEMBER_ACCOUNT, MEMBER_VERIFICATION, PAYMENT_SETTINGS, POINTS_CLUB_SETTINGS, PROFILE_COMPLETION, REFERRAL_CODE, REGISTER_MAYA_MEMBER_ACCOUNT, REGISTER_MEMBER_ACCOUNT, REGISTER_MEMBER_ACCOUNT__NEXT, REGISTER_MEMBER_ACCOUNT_BY_MOBILE_NUMBER, REGISTER_MEMBER_ACCOUNT_BY_NAME, REGISTER_MEMBER_ACCOUNT_VIA_MOBILE, RESET_PASSWORD, UPDATE_MEMBER_ACCOUNT, UPDATE_MEMBER_VERIFICATION, UPDATE_MEMBER_VERIFICATION__NEXT, UPDATE_REFERRAL_CODE, VERIFY_MOBILE_NUMBER, } from './queries.js';
5
5
  import { sha256 } from './sha256.js';
6
6
  export const getMemberAccount = cache(async (options) => {
7
7
  const res = await graphqlRequest(ACCOUNT_GRAPHQL_ENDPOINT, MEMBER_ACCOUNT, undefined, options);
@@ -257,6 +257,10 @@ export const getGoogleClientId = cache(async (options) => {
257
257
  const res = await graphqlRequest(ACCOUNT_GRAPHQL_ENDPOINT, GOOGLE_CLIENT_ID, undefined, options);
258
258
  return res.googleClientId ?? null;
259
259
  });
260
+ export const generateSumsubVerificationToken = async (options) => {
261
+ const res = await graphqlRequest(ACCOUNT_GRAPHQL_ENDPOINT, GENERATE_SUMSUB_VERIFICATION_TOKEN, undefined, options);
262
+ return res.generateSumsubVerificationToken;
263
+ };
260
264
  const ERROR_CODES_MESSAGE_MAP = {
261
265
  AccountNameNotAvailableError: 'Username is no longer available',
262
266
  AccountNotFoundError: 'Account does not exist',
@@ -127,3 +127,4 @@ export declare const FAVORITE_GAMES = "\n query FavoriteGames {\n favoriteGa
127
127
  export declare const GOOGLE_CLIENT_ID = "\n query GoogleClientId {\n googleClientId\n }\n";
128
128
  export declare const TOURNAMENTS = "\n query Tournaments(\n $first: Int\n $after: Cursor\n $filter: TournamentFilterInput\n ) {\n tournaments(first: $first, after: $after, filter: $filter) {\n totalCount\n pageInfo {\n hasNextPage\n endCursor\n }\n edges {\n node {\n ... on MultiplierTournament {\n id\n type\n name\n winnersCount\n status\n description\n activationStartDateTime\n activationEndDateTime\n topPayouts {\n id\n multiplier\n amount\n member {\n id\n name\n }\n }\n currentLeaderboard {\n totalCount\n edges {\n node {\n ... on TournamentLeaderboard {\n id\n username\n multiplier\n dateTimeCreated\n }\n }\n }\n }\n previousLeaderboard {\n totalCount\n edges {\n node {\n ... on TournamentLeaderboard {\n id\n username\n multiplier\n dateTimeCreated\n }\n }\n }\n }\n enabledGameProviders\n frequency\n mode\n mobileBanner {\n id\n url\n mimeType\n }\n webBanner {\n id\n url\n mimeType\n }\n rewardSettings\n }\n }\n }\n }\n }\n";
129
129
  export declare const TOURNAMENTS_COUNT = "\n query TournamentsCount($filter: TournamentFilterInput) {\n tournaments(filter: $filter) {\n totalCount\n }\n }\n";
130
+ export declare const GENERATE_SUMSUB_VERIFICATION_TOKEN = "\n mutation GenerateSumsubVerificationToken {\n generateSumsubVerificationToken\n }\n";
@@ -2642,3 +2642,8 @@ export const TOURNAMENTS_COUNT = /* GraphQL */ `
2642
2642
  }
2643
2643
  }
2644
2644
  `;
2645
+ export const GENERATE_SUMSUB_VERIFICATION_TOKEN = /* GraphQL */ `
2646
+ mutation GenerateSumsubVerificationToken {
2647
+ generateSumsubVerificationToken
2648
+ }
2649
+ `;