@opexa/portal-components 0.0.901 → 0.0.902
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/useSignInSSOMutation.d.ts +6 -0
- package/dist/client/hooks/useSignInSSOMutation.js +27 -0
- package/dist/client/services/signIn.d.ts +1 -0
- package/dist/client/services/signIn.js +19 -0
- package/dist/components/DepositWithdrawal/Deposit/AurixPayQRPHDeposit/AurixPayQRPHDepositContext.d.ts +2 -2
- package/dist/components/DepositWithdrawal/Deposit/AurixPayQRPHDeposit/useAurixPayQRPHDeposit.d.ts +1 -1
- package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/OnlineBankDepositContext.d.ts +2 -2
- package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/useOnlineBankDeposit.d.ts +1 -1
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositContext.d.ts +2 -2
- package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/useQRPHDeposit.d.ts +1 -1
- package/dist/components/Disclaimer/DisclaimerV3.js +14 -7
- package/dist/images/cinepop-logo.png +0 -0
- package/dist/images/dear-utol-logo.png +0 -0
- package/dist/images/inplay-logo.png +0 -0
- package/dist/images/light-bg.png +0 -0
- package/dist/images/marias-diary-logo.png +0 -0
- package/dist/images/secret-confessions-logo.png +0 -0
- package/dist/utils/mutationKeys.d.ts +1 -0
- package/dist/utils/mutationKeys.js +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { useMutation } from '@tanstack/react-query';
|
|
2
|
+
import { getQueryClient } from '../../utils/getQueryClient.js';
|
|
3
|
+
import { getSignInSSOMutationKey } from '../../utils/mutationKeys.js';
|
|
4
|
+
import { getSessionQueryKey } from '../../utils/queryKeys.js';
|
|
5
|
+
import { signInSSO } from '../services/signIn.js';
|
|
6
|
+
export const useSignInSSOMutation = (config) => {
|
|
7
|
+
const queryClient = getQueryClient();
|
|
8
|
+
return useMutation({
|
|
9
|
+
...config,
|
|
10
|
+
mutationKey: getSignInSSOMutationKey(),
|
|
11
|
+
mutationFn: async (input) => {
|
|
12
|
+
try {
|
|
13
|
+
const { partnerId, token } = input;
|
|
14
|
+
const authenticator = await signInSSO(partnerId, token);
|
|
15
|
+
if (!authenticator) {
|
|
16
|
+
await queryClient.invalidateQueries({
|
|
17
|
+
queryKey: getSessionQueryKey(),
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
return authenticator;
|
|
21
|
+
}
|
|
22
|
+
catch (error) {
|
|
23
|
+
throw error;
|
|
24
|
+
}
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
};
|
|
@@ -3,3 +3,4 @@ import { type HttpRequestOptions } from '../../services/httpRequest';
|
|
|
3
3
|
import type { Authenticator } from '../../types';
|
|
4
4
|
export type SignInInput = CreateSessionInput;
|
|
5
5
|
export declare function signIn(input: SignInInput, options?: HttpRequestOptions): Promise<Authenticator | null>;
|
|
6
|
+
export declare function signInSSO(partnerId: string, token: string, options?: HttpRequestOptions): Promise<Authenticator | null>;
|
|
@@ -21,3 +21,22 @@ export async function signIn(input, options) {
|
|
|
21
21
|
}
|
|
22
22
|
return res.data ?? null;
|
|
23
23
|
}
|
|
24
|
+
export async function signInSSO(partnerId, token, options) {
|
|
25
|
+
// Create base64 encoded authorization
|
|
26
|
+
const authString = btoa(`${partnerId}:${token}`);
|
|
27
|
+
const res = await httpRequest.json('/api/v3/sessions', {
|
|
28
|
+
...options,
|
|
29
|
+
method: 'POST',
|
|
30
|
+
headers: {
|
|
31
|
+
Authorization: `OPEXA_SINGLE_SIGN_ON ${authString}`,
|
|
32
|
+
'Platform-Code': process.env.NEXT_PUBLIC_PLATFORM_CODE || '',
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
if (!res.ok) {
|
|
36
|
+
const error = new Error();
|
|
37
|
+
error.name = 'SSOSignInError';
|
|
38
|
+
error.message = 'Single sign-on authentication failed';
|
|
39
|
+
throw error;
|
|
40
|
+
}
|
|
41
|
+
return res.data ?? null;
|
|
42
|
+
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const AurixPayQRPHDepositContext: (props: {
|
|
2
2
|
value: {
|
|
3
|
-
status: "
|
|
3
|
+
status: "idle" | "generating-qr-code" | "qr-code-generated" | "failed" | "confirmed";
|
|
4
4
|
deposit: import("../../../../types").Deposit | null;
|
|
5
5
|
errorMessage: {
|
|
6
6
|
name: string;
|
|
@@ -13,7 +13,7 @@ export declare const AurixPayQRPHDepositContext: (props: {
|
|
|
13
13
|
} & {
|
|
14
14
|
children?: import("react").ReactNode | undefined;
|
|
15
15
|
}) => React.ReactNode, useAurixPayQRPHDepositContext: () => {
|
|
16
|
-
status: "
|
|
16
|
+
status: "idle" | "generating-qr-code" | "qr-code-generated" | "failed" | "confirmed";
|
|
17
17
|
deposit: import("../../../../types").Deposit | null;
|
|
18
18
|
errorMessage: {
|
|
19
19
|
name: string;
|
package/dist/components/DepositWithdrawal/Deposit/AurixPayQRPHDeposit/useAurixPayQRPHDeposit.d.ts
CHANGED
|
@@ -5,7 +5,7 @@ export interface GenerateQRCodeInput {
|
|
|
5
5
|
promo?: string | null;
|
|
6
6
|
}
|
|
7
7
|
export declare function useAurixPayQRPHDeposit(): {
|
|
8
|
-
status: "
|
|
8
|
+
status: "idle" | "generating-qr-code" | "qr-code-generated" | "failed" | "confirmed";
|
|
9
9
|
deposit: Deposit | null;
|
|
10
10
|
errorMessage: {
|
|
11
11
|
name: string;
|
package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/OnlineBankDepositContext.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export declare const OnlineBankDepositContext: (props: {
|
|
2
2
|
value: {
|
|
3
3
|
view: "form" | "vca";
|
|
4
|
-
status: "waiting" | "
|
|
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;
|
|
@@ -14,7 +14,7 @@ export declare const OnlineBankDepositContext: (props: {
|
|
|
14
14
|
children?: import("react").ReactNode | undefined;
|
|
15
15
|
}) => React.ReactNode, useOnlineBankDepositContext: () => {
|
|
16
16
|
view: "form" | "vca";
|
|
17
|
-
status: "waiting" | "
|
|
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;
|
package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/useOnlineBankDeposit.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import type { Deposit } from '../../../../types';
|
|
|
2
2
|
export type UseOnlineBankDepositReturn = ReturnType<typeof useOnlineBankDeposit>;
|
|
3
3
|
export declare function useOnlineBankDeposit(): {
|
|
4
4
|
view: "form" | "vca";
|
|
5
|
-
status: "waiting" | "
|
|
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;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export declare const QRPHDepositContext: (props: {
|
|
2
2
|
value: {
|
|
3
|
-
status: "
|
|
3
|
+
status: "idle" | "generating-qr-code" | "qr-code-generated" | "failed" | "confirmed";
|
|
4
4
|
deposit: import("../../../../types").Deposit | null;
|
|
5
5
|
errorMessage: {
|
|
6
6
|
name: string;
|
|
@@ -13,7 +13,7 @@ export declare const QRPHDepositContext: (props: {
|
|
|
13
13
|
} & {
|
|
14
14
|
children?: import("react").ReactNode | undefined;
|
|
15
15
|
}) => React.ReactNode, useQRPHDepositContext: () => {
|
|
16
|
-
status: "
|
|
16
|
+
status: "idle" | "generating-qr-code" | "qr-code-generated" | "failed" | "confirmed";
|
|
17
17
|
deposit: import("../../../../types").Deposit | null;
|
|
18
18
|
errorMessage: {
|
|
19
19
|
name: string;
|
|
@@ -5,7 +5,7 @@ export interface GenerateQRCodeInput {
|
|
|
5
5
|
promo?: string | null;
|
|
6
6
|
}
|
|
7
7
|
export declare function useQRPHDeposit(): {
|
|
8
|
-
status: "
|
|
8
|
+
status: "idle" | "generating-qr-code" | "qr-code-generated" | "failed" | "confirmed";
|
|
9
9
|
deposit: Deposit | null;
|
|
10
10
|
errorMessage: {
|
|
11
11
|
name: string;
|
|
@@ -1,31 +1,38 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
3
|
-
import Image from 'next/image';
|
|
4
3
|
import { App } from '@capacitor/app';
|
|
5
4
|
import { Capacitor } from '@capacitor/core';
|
|
5
|
+
import Image from 'next/image';
|
|
6
6
|
import { useState } from 'react';
|
|
7
7
|
import { twMerge } from 'tailwind-merge';
|
|
8
8
|
import { useShallow } from 'zustand/shallow';
|
|
9
9
|
import { useGlobalStore } from '../../client/hooks/useGlobalStore.js';
|
|
10
10
|
import { AlertCircleIcon } from '../../icons/AlertCircleIcon.js';
|
|
11
|
+
import { CheckIcon } from '../../icons/CheckIcon.js';
|
|
11
12
|
import pagcorLogo from '../../images/pagcor2.png';
|
|
12
13
|
import responsibleGamingLogo from '../../images/responsible-gaming.png';
|
|
13
14
|
import { Button } from '../../ui/Button/index.js';
|
|
15
|
+
import { Checkbox } from '../../ui/Checkbox/index.js';
|
|
14
16
|
import { Dialog } from '../../ui/Dialog/index.js';
|
|
15
17
|
import { Portal } from '../../ui/Portal/index.js';
|
|
16
18
|
import { useDisclaimer } from './useDisclaimer.js';
|
|
17
19
|
export function DisclaimerV3(props) {
|
|
18
|
-
const disclaimer = useDisclaimer(
|
|
20
|
+
const disclaimer = useDisclaimer({
|
|
21
|
+
showInLogin: true,
|
|
22
|
+
});
|
|
19
23
|
const globalStore = useGlobalStore(useShallow((ctx) => ({
|
|
20
24
|
termsOfUse: ctx.termsOfUse,
|
|
21
25
|
responsibleGaming: ctx.responsibleGaming,
|
|
22
26
|
onboarding: ctx.onboarding,
|
|
23
27
|
})));
|
|
24
|
-
const checked =
|
|
25
|
-
globalStore.responsibleGaming.accepted) ||
|
|
26
|
-
true;
|
|
28
|
+
const checked = globalStore.termsOfUse.accepted && globalStore.responsibleGaming.accepted;
|
|
27
29
|
const [showWarning, setShowWarning] = useState(false);
|
|
28
|
-
return (_jsx(Dialog.Root, { open: disclaimer.open, lazyMount: true, unmountOnExit: true, closeOnEscape: false, closeOnInteractOutside: false, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, {}), _jsx(Dialog.Positioner, { children: _jsxs(Dialog.Content, { "aria-label": `${props.siteName} Player Disclaimer`, "aria-labelledby": "disclaimer-title", "aria-describedby": "disclaimer-description", className: "flex h-full scrollbar:h-2 scrollbar:w-2 w-full flex-col items-start gap-y-4 overflow-y-auto scrollbar-thumb:rounded-full scrollbar-thumb:bg-bg-quaternary scrollbar-track:bg-transparent p-3xl lg:mx-auto lg:h-auto lg:max-h-[90vh] lg:w-[400px] lg:rounded-xl", children: [_jsx("div", { className: "mx-auto h-auto max-w-[120px]", children: _jsx(Image, { src: props.logo, alt: `${props.siteName} logo`, width: 200, height: 100, className: "h-full w-full object-cover", draggable: false, unoptimized: true }) }), _jsx("div", { className: "w-full text-center font-semibold text-3xl", id: "disclaimer-title", children: "Notice" }), _jsx("div", { className: "text-sm", id: "disclaimer-description", children: "By entering this website, you acknowledge and confirm:" }), _jsx("div", { className: "w-full grow", children: _jsxs(Dialog.Description, { className: "space-y-4 text-sm", children: [_jsxs("ul", { className: "space-y-1.5 text-left", "aria-label": "Restricted persons list", children: [_jsxs("li", { className: "flex gap-4 text-text-placeholder", children: [_jsx(Circle, {}), "You are 21 years old and above."] }), _jsxs("li", { className: "flex gap-4 text-text-placeholder", children: [_jsx(Circle, {}), "You are not a government official, or employee connected directly with the operation of the Government or any of its agencies, member of the Armed Forces of the Philippines including the Army, Navy, Air Force, or the Philippine Nationa Police."] }), _jsxs("li", { className: "flex gap-4 text-text-placeholder", children: [_jsx(Circle, {}), "You are not included in the PAGCOR's National Database Restricted Persons (NDRP)."] }), _jsxs("li", { className: "flex gap-4 text-text-placeholder", children: [_jsx(Circle, {}), "Funds or credits in the account of player who is found ineligible to play shall mean forfeiture of said funds/credits in favor of the Government."] }), _jsxs(
|
|
30
|
+
return (_jsx(Dialog.Root, { open: disclaimer.open, lazyMount: true, unmountOnExit: true, closeOnEscape: false, closeOnInteractOutside: false, children: _jsxs(Portal, { children: [_jsx(Dialog.Backdrop, {}), _jsx(Dialog.Positioner, { children: _jsxs(Dialog.Content, { "aria-label": `${props.siteName} Player Disclaimer`, "aria-labelledby": "disclaimer-title", "aria-describedby": "disclaimer-description", className: "flex h-full scrollbar:h-2 scrollbar:w-2 w-full flex-col items-start gap-y-4 overflow-y-auto scrollbar-thumb:rounded-full scrollbar-thumb:bg-bg-quaternary scrollbar-track:bg-transparent p-3xl lg:mx-auto lg:h-auto lg:max-h-[90vh] lg:w-[400px] lg:rounded-xl", children: [_jsx("div", { className: "mx-auto h-auto max-w-[120px]", children: _jsx(Image, { src: props.logo, alt: `${props.siteName} logo`, width: 200, height: 100, className: "h-full w-full object-cover", draggable: false, unoptimized: true }) }), _jsx("div", { className: "w-full text-center font-semibold text-3xl", id: "disclaimer-title", children: "Notice" }), _jsx("div", { className: "text-sm", id: "disclaimer-description", children: "By entering this website, you acknowledge and confirm:" }), _jsx("div", { className: "w-full grow", children: _jsxs(Dialog.Description, { className: "space-y-4 text-sm", children: [_jsxs("ul", { className: "space-y-1.5 text-left", "aria-label": "Restricted persons list", children: [_jsxs("li", { className: "flex gap-4 text-text-placeholder", children: [_jsx(Circle, {}), "You are 21 years old and above."] }), _jsxs("li", { className: "flex gap-4 text-text-placeholder", children: [_jsx(Circle, {}), "You are not a government official, or employee connected directly with the operation of the Government or any of its agencies, member of the Armed Forces of the Philippines including the Army, Navy, Air Force, or the Philippine Nationa Police."] }), _jsxs("li", { className: "flex gap-4 text-text-placeholder", children: [_jsx(Circle, {}), "You are not included in the PAGCOR's National Database Restricted Persons (NDRP)."] }), _jsxs("li", { className: "flex gap-4 text-text-placeholder", children: [_jsx(Circle, {}), "Funds or credits in the account of player who is found ineligible to play shall mean forfeiture of said funds/credits in favor of the Government."] }), _jsxs(Checkbox.Root, { checked: checked, onCheckedChange: (e) => {
|
|
31
|
+
if (e.checked === 'indeterminate')
|
|
32
|
+
return;
|
|
33
|
+
globalStore.termsOfUse.setAccepted(e.checked);
|
|
34
|
+
globalStore.responsibleGaming.setAccepted(e.checked);
|
|
35
|
+
}, className: "pt-2.5 pb-2", children: [_jsx(Checkbox.Control, { children: _jsx(Checkbox.Indicator, { asChild: true, children: _jsx(CheckIcon, {}) }) }), _jsxs(Checkbox.Label, { children: ["You agree and read the", ' ', _jsx("button", { type: "button", className: "text-brand-400 underline underline-offset-2", onClick: () => {
|
|
29
36
|
globalStore.termsOfUse.setOpen(true);
|
|
30
37
|
globalStore.termsOfUse.setNext('DISCLAIMER');
|
|
31
38
|
disclaimer.close();
|
|
@@ -33,7 +40,7 @@ export function DisclaimerV3(props) {
|
|
|
33
40
|
globalStore.responsibleGaming.setOpen(true);
|
|
34
41
|
globalStore.responsibleGaming.setNext('DISCLAIMER');
|
|
35
42
|
disclaimer.close();
|
|
36
|
-
}, children: "Responsible Gaming" }), ' ', "guidelines."] })] }), _jsxs("li", { className: "mt-5", children: ["Self Exclusion Site:\u00A0", _jsx("a", { href: "https://osea.pagcor.ph", target: "_blank", className: "text-brand-400 underline underline-offset-2", rel: "noopener", children: "https://osea.pagcor.ph/" })] }), _jsxs("li", { className: "mt-5", children: ["To know more about PAGCOR\u2019s ResponsibleGaming Program:\u00A0", _jsxs("a", { href: "https://www.pagcor.ph/regulatory/responsible-gaming.php", target: "_blank", className: "text-brand-400 underline underline-offset-2", rel: "noopener", children: ["https://www.pagcor.ph", _jsx("br", {}), "/regulatory/responsible-gaming.php"] })] })] }), _jsx("div", { className: twMerge('mx-auto mt-2 flex max-w-full items-center gap-2 break-words rounded-md text-text-error-primary text-xs', showWarning ? 'h-[28px] opacity-100' : 'opacity-0'), role: "alert", "aria-live": "assertive", children: showWarning && (_jsxs(_Fragment, { children: [_jsx(AlertCircleIcon, { className: "size-5 text-text-error-primary" }), "Please agree to ", props.siteName, "'s Terms of Use and Responsible Gaming to proceed."] })) })] }) }), _jsxs("div", { className: "grid w-full grid-cols-2 items-center gap-3xl", children: [_jsx(Image, { src: props.pagcorLogo ?? pagcorLogo, alt: "PAGCOR logo", height: 50, width: 186, className: "h-[43px] w-auto shrink-0 object-contain", draggable: false, unoptimized: true }), _jsx(Image, { src: props.responsibleGamingLogo ?? responsibleGamingLogo, alt: "Responsible Gaming logo", height: 50, width: 186, className: "h-[50px] w-auto shrink-0", draggable: false, unoptimized: true })] }), _jsxs("div", { className: "row mt-4 flex w-full flex-col gap-3", children: [_jsx(Button, { type: "button", onClick: () => {
|
|
43
|
+
}, children: "Responsible Gaming" }), ' ', "guidelines."] }), _jsx(Checkbox.HiddenInput, {})] }), _jsxs("li", { className: "mt-5", children: ["Self Exclusion Site:\u00A0", _jsx("a", { href: "https://osea.pagcor.ph", target: "_blank", className: "text-brand-400 underline underline-offset-2", rel: "noopener", children: "https://osea.pagcor.ph/" })] }), _jsxs("li", { className: "mt-5", children: ["To know more about PAGCOR\u2019s ResponsibleGaming Program:\u00A0", _jsxs("a", { href: "https://www.pagcor.ph/regulatory/responsible-gaming.php", target: "_blank", className: "text-brand-400 underline underline-offset-2", rel: "noopener", children: ["https://www.pagcor.ph", _jsx("br", {}), "/regulatory/responsible-gaming.php"] })] })] }), _jsx("div", { className: twMerge('mx-auto mt-2 flex max-w-full items-center gap-2 break-words rounded-md text-text-error-primary text-xs', showWarning ? 'h-[28px] opacity-100' : 'opacity-0'), role: "alert", "aria-live": "assertive", children: showWarning && (_jsxs(_Fragment, { children: [_jsx(AlertCircleIcon, { className: "size-5 text-text-error-primary" }), "Please agree to ", props.siteName, "'s Terms of Use and Responsible Gaming to proceed."] })) })] }) }), _jsxs("div", { className: "grid w-full grid-cols-2 items-center gap-3xl", children: [_jsx(Image, { src: props.pagcorLogo ?? pagcorLogo, alt: "PAGCOR logo", height: 50, width: 186, className: "h-[43px] w-auto shrink-0 object-contain", draggable: false, unoptimized: true }), _jsx(Image, { src: props.responsibleGamingLogo ?? responsibleGamingLogo, alt: "Responsible Gaming logo", height: 50, width: 186, className: "h-[50px] w-auto shrink-0", draggable: false, unoptimized: true })] }), _jsxs("div", { className: "row mt-4 flex w-full flex-col gap-3", children: [_jsx(Button, { type: "button", onClick: () => {
|
|
37
44
|
if (!checked) {
|
|
38
45
|
setShowWarning(true);
|
|
39
46
|
setTimeout(() => setShowWarning(false), 4000);
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -36,6 +36,7 @@ export declare const getUpdateAccountMutationKey: () => MutationKey;
|
|
|
36
36
|
export declare const getUpdateMemberVerificationQueryKey: () => MutationKey;
|
|
37
37
|
export declare const getSendVerificationCodeMutationKey: () => MutationKey;
|
|
38
38
|
export declare const getSignInMutationKey: () => MutationKey;
|
|
39
|
+
export declare const getSignInSSOMutationKey: () => MutationKey;
|
|
39
40
|
export declare const getSignOutMutationKey: () => MutationKey;
|
|
40
41
|
export declare const getSignUpMutationKey: () => MutationKey;
|
|
41
42
|
export declare const getCompleteOnboardingMutationKey: () => MutationKey;
|
|
@@ -138,6 +138,7 @@ export const getSendVerificationCodeMutationKey = () => [
|
|
|
138
138
|
'sendVerificationCode',
|
|
139
139
|
];
|
|
140
140
|
export const getSignInMutationKey = () => [PARENT_KEY, 'signIn'];
|
|
141
|
+
export const getSignInSSOMutationKey = () => [PARENT_KEY, 'signInSSO'];
|
|
141
142
|
export const getSignOutMutationKey = () => [PARENT_KEY, 'signOut'];
|
|
142
143
|
export const getSignUpMutationKey = () => [PARENT_KEY, 'signUp'];
|
|
143
144
|
export const getCompleteOnboardingMutationKey = () => [
|