@opexa/portal-components 0.0.61 → 0.0.63

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 (160) hide show
  1. package/dist/client/hooks/index.d.ts +8 -2
  2. package/dist/client/hooks/index.js +8 -2
  3. package/dist/client/hooks/useBonusQuery.d.ts +3 -0
  4. package/dist/client/hooks/useBonusQuery.js +34 -0
  5. package/dist/client/hooks/useCashbackBonusQuery.d.ts +3 -0
  6. package/dist/client/hooks/useCashbackBonusQuery.js +34 -0
  7. package/dist/client/hooks/useCashbackBonusesQuery.d.ts +3 -0
  8. package/dist/client/hooks/useCashbackBonusesQuery.js +32 -0
  9. package/dist/client/hooks/useCashbackQuery.d.ts +3 -0
  10. package/dist/client/hooks/useCashbackQuery.js +20 -0
  11. package/dist/client/hooks/useClaimCashbackBonusMutation.d.ts +2 -0
  12. package/dist/client/hooks/useClaimCashbackBonusMutation.js +28 -0
  13. package/dist/client/hooks/useClaimSpotBonusMutation.d.ts +2 -0
  14. package/dist/client/hooks/useClaimSpotBonusMutation.js +28 -0
  15. package/dist/client/utils/createContext.d.ts +9 -0
  16. package/dist/client/utils/createContext.js +14 -0
  17. package/dist/client/utils/index.d.ts +1 -0
  18. package/dist/client/utils/index.js +1 -0
  19. package/dist/components/Bonuses/Bonuses.client.d.ts +2 -0
  20. package/dist/components/Bonuses/Bonuses.client.js +87 -0
  21. package/dist/components/Bonuses/Bonuses.d.ts +3 -3
  22. package/dist/components/Bonuses/Bonuses.js +6 -14
  23. package/dist/components/Bonuses/money-on-hand.png +0 -0
  24. package/dist/components/Bonuses/piggy-bank.png +0 -0
  25. package/dist/components/Cashback/Cashback.client.d.ts +2 -0
  26. package/dist/components/Cashback/Cashback.client.js +27 -0
  27. package/dist/components/Cashback/Cashback.d.ts +7 -0
  28. package/dist/components/Cashback/Cashback.js +15 -0
  29. package/dist/components/Cashback/index.d.ts +1 -0
  30. package/dist/components/Cashback/index.js +1 -0
  31. package/dist/components/CashbackBonus/CashbackBonus.client.d.ts +2 -0
  32. package/dist/components/CashbackBonus/CashbackBonus.client.js +9 -0
  33. package/dist/components/CashbackBonus/CashbackBonus.d.ts +10 -0
  34. package/dist/components/CashbackBonus/CashbackBonus.js +5 -0
  35. package/dist/components/CashbackBonus/index.d.ts +1 -0
  36. package/dist/components/CashbackBonus/index.js +1 -0
  37. package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/OnlineBankDepositContext.d.ts +1 -2
  38. package/dist/components/DepositWithdrawal/Deposit/OnlineBankDeposit/OnlineBankDepositContext.js +2 -8
  39. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositContext.d.ts +1 -2
  40. package/dist/components/DepositWithdrawal/Deposit/QRPHDeposit/QRPHDepositContext.js +2 -8
  41. package/dist/components/Empty.d.ts +1 -0
  42. package/dist/components/Empty.js +1 -1
  43. package/dist/components/Games/GameContext.d.ts +1 -2
  44. package/dist/components/Games/GameContext.js +2 -8
  45. package/dist/components/KYC/KYCContext.d.ts +1 -2
  46. package/dist/components/KYC/KYCContext.js +2 -8
  47. package/dist/components/Messages/MessageItem.js +3 -2
  48. package/dist/components/Messages/MessagePopup.js +1 -0
  49. package/dist/components/Messages/MessageTrigger.d.ts +8 -0
  50. package/dist/components/Messages/MessageTrigger.js +18 -0
  51. package/dist/components/Messages/index.d.ts +2 -0
  52. package/dist/components/Messages/index.js +2 -0
  53. package/dist/components/PortalProvider/WebVitals.js +2 -2
  54. package/dist/components/Promo/Promo.client.d.ts +1 -1
  55. package/dist/components/Promo/Promo.client.js +3 -3
  56. package/dist/components/Promos/Cashback.d.ts +7 -0
  57. package/dist/components/Promos/Cashback.js +17 -0
  58. package/dist/components/Promos/Promo.d.ts +7 -0
  59. package/dist/components/Promos/Promo.js +17 -0
  60. package/dist/components/Promos/Promos.d.ts +4 -0
  61. package/dist/components/Promos/Promos.js +6 -6
  62. package/dist/components/Promos/PromosCarousel.d.ts +2 -0
  63. package/dist/components/Promos/{PromoCarousel.js → PromosCarousel.js} +9 -5
  64. package/dist/components/Promos/PromosGrid.d.ts +2 -0
  65. package/dist/components/Promos/PromosGrid.js +16 -0
  66. package/dist/components/SignIn/MobileNumberSignIn.d.ts +1 -0
  67. package/dist/components/SignIn/MobileNumberSignIn.js +121 -0
  68. package/dist/components/SignIn/NameAndPasswordSignIn.d.ts +1 -0
  69. package/dist/components/SignIn/NameAndPasswordSignIn.js +116 -0
  70. package/dist/components/SignIn/SignIn.js +6 -3
  71. package/dist/components/SignIn/SignInContext.d.ts +2 -0
  72. package/dist/components/SignIn/SignInContext.js +2 -0
  73. package/dist/components/SignIn/SignInForm.js +7 -115
  74. package/dist/components/SignIn/SignInMethod.d.ts +1 -0
  75. package/dist/components/SignIn/SignInMethod.js +19 -0
  76. package/dist/components/SignIn/useSignIn.d.ts +10 -0
  77. package/dist/components/SignIn/useSignIn.js +11 -0
  78. package/dist/components/index.d.ts +2 -0
  79. package/dist/components/index.js +2 -0
  80. package/dist/constants/index.d.ts +4 -2
  81. package/dist/constants/index.js +24 -0
  82. package/dist/server/utils/index.d.ts +4 -0
  83. package/dist/server/utils/index.js +4 -0
  84. package/dist/server/utils/prefetchBonusQuery.d.ts +1 -0
  85. package/dist/server/utils/prefetchBonusQuery.js +22 -0
  86. package/dist/server/utils/prefetchCashbackBonusQuery.d.ts +1 -0
  87. package/dist/server/utils/prefetchCashbackBonusQuery.js +22 -0
  88. package/dist/server/utils/prefetchCashbackBonusesQuery.d.ts +1 -0
  89. package/dist/server/utils/prefetchCashbackBonusesQuery.js +22 -0
  90. package/dist/server/utils/prefetchCashbackQuery.d.ts +1 -0
  91. package/dist/server/utils/prefetchCashbackQuery.js +17 -0
  92. package/dist/types/index.d.ts +1 -0
  93. package/dist/ui/AlertDialog/AlertDialog.d.ts +154 -154
  94. package/dist/ui/AlertDialog/alertDialog.recipe.d.ts +14 -14
  95. package/dist/ui/Badge/Badge.d.ts +24 -12
  96. package/dist/ui/Badge/badge.anatomy.d.ts +1 -1
  97. package/dist/ui/Badge/badge.anatomy.js +1 -1
  98. package/dist/ui/Badge/badge.recipe.d.ts +6 -3
  99. package/dist/ui/Badge/badge.recipe.js +11 -0
  100. package/dist/ui/Checkbox/Checkbox.d.ts +23 -23
  101. package/dist/ui/Checkbox/checkbox.recipe.d.ts +3 -3
  102. package/dist/ui/Clipboard/Clipboard.d.ts +18 -18
  103. package/dist/ui/Clipboard/clipboard.recipe.d.ts +3 -3
  104. package/dist/ui/Collapsible/Collapsible.d.ts +20 -20
  105. package/dist/ui/Collapsible/collapsible.recipe.d.ts +5 -5
  106. package/dist/ui/Combobox/Combobox.d.ts +42 -42
  107. package/dist/ui/Combobox/combobox.recipe.d.ts +3 -3
  108. package/dist/ui/DatePicker/DatePicker.d.ts +192 -192
  109. package/dist/ui/DatePicker/datePicker.recipe.d.ts +8 -8
  110. package/dist/ui/Dialog/Dialog.d.ts +154 -154
  111. package/dist/ui/Dialog/dialog.recipe.d.ts +14 -14
  112. package/dist/ui/Drawer/Drawer.d.ts +33 -33
  113. package/dist/ui/Drawer/drawer.recipe.d.ts +3 -3
  114. package/dist/ui/PasswordInput/PasswordInput.d.ts +18 -18
  115. package/dist/ui/PasswordInput/passwordInput.recipe.d.ts +3 -3
  116. package/dist/ui/Popover/Popover.d.ts +88 -88
  117. package/dist/ui/Popover/popover.recipe.d.ts +8 -8
  118. package/dist/ui/Progress/progress.recipe.js +1 -1
  119. package/dist/ui/Select/Select.d.ts +45 -45
  120. package/dist/ui/Select/select.recipe.d.ts +3 -3
  121. package/dist/ui/Table/Table.d.ts +21 -21
  122. package/dist/ui/Table/table.anatomy.d.ts +1 -1
  123. package/dist/ui/Table/table.anatomy.js +1 -1
  124. package/dist/ui/Table/table.recipe.d.ts +3 -3
  125. package/dist/ui/Tabs/Tabs.d.ts +15 -15
  126. package/dist/ui/Tabs/tabs.recipe.d.ts +3 -3
  127. package/dist/utils/anatomyToRecipeSlots.d.ts +1 -1
  128. package/dist/utils/anatomyToRecipeSlots.js +3 -1
  129. package/dist/utils/queryKeys.d.ts +6 -0
  130. package/dist/utils/queryKeys.js +18 -0
  131. package/package.json +10 -10
  132. package/dist/components/AccountPaymentMethods/AccountPaymentMethods.d.ts +0 -1
  133. package/dist/components/AccountPaymentMethods/AccountPaymentMethods.js +0 -3
  134. package/dist/components/AccountPaymentMethods/index.d.ts +0 -1
  135. package/dist/components/AccountPaymentMethods/index.js +0 -1
  136. package/dist/components/AccountVerification/AccountVerificationContext.d.ts +0 -14
  137. package/dist/components/AccountVerification/AccountVerificationContext.js +0 -27
  138. package/dist/components/AccountVerification/VerificationCapture.d.ts +0 -1
  139. package/dist/components/AccountVerification/VerificationCapture.js +0 -28
  140. package/dist/components/AccountVerification/VerificationComplete.d.ts +0 -1
  141. package/dist/components/AccountVerification/VerificationComplete.js +0 -9
  142. package/dist/components/AccountVerification/VerificationDetails.d.ts +0 -1
  143. package/dist/components/AccountVerification/VerificationDetails.js +0 -38
  144. package/dist/components/GamesSearch/GamesSearchTrigger.d.ts +0 -5
  145. package/dist/components/GamesSearch/GamesSearchTrigger.js +0 -14
  146. package/dist/components/KYC/AccountVerificationContext.d.ts +0 -14
  147. package/dist/components/KYC/AccountVerificationContext.js +0 -27
  148. package/dist/components/KYC/VerificationCapture.d.ts +0 -1
  149. package/dist/components/KYC/VerificationCapture.js +0 -28
  150. package/dist/components/KYC/VerificationComplete.d.ts +0 -1
  151. package/dist/components/KYC/VerificationComplete.js +0 -9
  152. package/dist/components/KYC/VerificationDetails.d.ts +0 -1
  153. package/dist/components/KYC/VerificationDetails.js +0 -38
  154. package/dist/components/Promo/PromoContent.d.ts +0 -2
  155. package/dist/components/Promo/PromoContent.js +0 -9
  156. package/dist/components/Promos/PromoCarousel.d.ts +0 -2
  157. package/dist/components/Promos/PromoGrid.d.ts +0 -2
  158. package/dist/components/Promos/PromoGrid.js +0 -11
  159. package/dist/components/Promos/PromoItem.d.ts +0 -7
  160. package/dist/components/Promos/PromoItem.js +0 -17
@@ -1,118 +1,10 @@
1
1
  'use client';
2
- import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
- import { useDialogContext } from '@ark-ui/react';
4
- import { zodResolver } from '@hookform/resolvers/zod';
5
- import { useState } from 'react';
6
- import { Controller, useForm } from 'react-hook-form';
7
- import { z } from 'zod';
8
- import { useShallow } from 'zustand/shallow';
9
- import { useCooldown, useGlobalStore, useLocaleInfo, useMobileNumberParser, useSendVerificationCodeMutation, useSignInMutation, } from '../../client/hooks/index.js';
10
- import { toaster } from '../../client/utils/index.js';
11
- import { ArrowLeftIcon, CheckIcon, FacebookIcon, GoogleIcon, } from '../../icons/index.js';
12
- import { Button, Checkbox, Field, PinInput } from '../../ui/index.js';
2
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { MobileNumberSignIn } from './MobileNumberSignIn.js';
4
+ import { NameAndPasswordSignIn } from './NameAndPasswordSignIn.js';
5
+ import { useSignInContext } from './SignInContext.js';
6
+ import { SignInMethod } from './SignInMethod.js';
13
7
  export function SignInForm() {
14
- const [step, setStep] = useState(1);
15
- const dialog = useDialogContext();
16
- const signUpStore = useGlobalStore(useShallow((popups) => popups.signUp));
17
- const signInMutation = useSignInMutation();
18
- const sendVerificationCodeMutation = useSendVerificationCodeMutation();
19
- const localeInfo = useLocaleInfo();
20
- const mobileNumberParser = useMobileNumberParser();
21
- const Step1Definition = z.object({
22
- mobileNumber: z.string().superRefine((v, ctx) => {
23
- if (!mobileNumberParser.validate(v)) {
24
- ctx.addIssue({
25
- code: z.ZodIssueCode.custom,
26
- message: 'Invalid mobile number',
27
- });
28
- }
29
- }),
30
- termsAccepted: z.boolean().superRefine((v, ctx) => {
31
- if (!v) {
32
- ctx.addIssue({
33
- code: z.ZodIssueCode.custom,
34
- message: 'You must accept the terms and conditions',
35
- });
36
- }
37
- }),
38
- });
39
- const Step2Definition = z.object({
40
- verificationCode: z.array(z.string().min(1).max(1).trim()).min(6).max(6),
41
- });
42
- const step1Form = useForm({
43
- resolver: zodResolver(Step1Definition),
44
- defaultValues: {
45
- mobileNumber: '',
46
- termsAccepted: false,
47
- },
48
- });
49
- const step2Form = useForm({
50
- resolver: zodResolver(Step2Definition),
51
- defaultValues: {
52
- verificationCode: Array.from({ length: 6 }).fill(''),
53
- },
54
- });
55
- const cooldown = useCooldown({
56
- max: 60,
57
- duration: 1000 * 60,
58
- });
59
- return (_jsxs(_Fragment, { children: [step === 1 && (_jsxs(_Fragment, { children: [_jsx("h2", { className: "mt-xl text-center text-lg font-semibold", children: "Log in to your account" }), _jsx("p", { className: "text-text-secondary-700 mt-xs text-center text-sm", children: "Welcome back! Please enter your details." }), _jsxs("form", { className: "mt-3xl", onSubmit: step1Form.handleSubmit(async (data) => {
60
- try {
61
- await sendVerificationCodeMutation.mutateAsync({
62
- channel: 'SMS',
63
- recipient: mobileNumberParser.format(data.mobileNumber),
64
- strict: true,
65
- });
66
- setStep(2);
67
- cooldown.start();
68
- }
69
- catch (e) {
70
- toaster.error({
71
- description: e instanceof Error
72
- ? e.message
73
- : 'Failed to send verification code',
74
- });
75
- }
76
- }), children: [_jsxs(Field.Root, { invalid: !!step1Form.formState.errors.mobileNumber, children: [_jsx(Field.Label, { children: "Mobile Number" }), _jsxs("div", { className: "relative", children: [_jsx(localeInfo.country.flag, { className: "absolute left-3.5 top-1/2 size-5 shrink-0 -translate-y-1/2" }), _jsx(Field.Input, { className: "pl-11", placeholder: `${localeInfo.mobileNumber.areaCode}${localeInfo.mobileNumber.example}`, ...step1Form.register('mobileNumber') })] }), _jsx(Field.ErrorText, { children: step1Form.formState.errors.mobileNumber?.message })] }), _jsx(Button, { type: "submit", className: "mt-3xl", disabled: step1Form.formState.isSubmitting, children: "Log In" }), _jsx(Controller, { control: step1Form.control, name: "termsAccepted", render: (o) => (_jsxs(Checkbox.Root, { className: "mt-xl", invalid: o.fieldState.invalid, checked: o.field.value, onCheckedChange: (details) => {
77
- o.field.onChange(details.checked);
78
- }, children: [_jsx(Checkbox.Control, { children: _jsx(Checkbox.Indicator, { asChild: true, children: _jsx(CheckIcon, {}) }) }), _jsxs(Checkbox.Label, { children: ["I am at least 21 years of age and I accept the", ' ', _jsx("span", { className: "text-brand-400 whitespace-nowrap underline underline-offset-2", children: "Terms and Conditions." })] }), _jsx(Checkbox.HiddenInput, {})] })) })] }), _jsxs("div", { className: "relative mt-6 text-center", children: [_jsx("hr", { className: "-translte-y-1/2 text-text-tertiary-600/50 absolute top-1/2 w-full" }), _jsx("span", { className: "text-text-tertiary-600 bg-bg-primary-alt relative px-md text-center text-sm font-semibold", children: "Log in directly with" })] }), _jsxs("div", { className: "mt-6", children: [_jsxs(Button, { variant: "outline", colorScheme: "gray", onClick: () => {
79
- dialog.setOpen(false);
80
- }, className: "border-border-primary bg-bg-primary text-text-secondary-700", children: [_jsx(GoogleIcon, { className: "size-6" }), "Continue with Google"] }), _jsxs(Button, { variant: "outline", colorScheme: "gray", onClick: () => {
81
- dialog.setOpen(false);
82
- }, className: "border-border-primary bg-bg-primary text-text-secondary-700 mt-lg", children: [_jsx(FacebookIcon, { className: "size-6" }), "Continue with Facebook"] })] }), _jsxs("div", { className: "mt-6 flex w-full items-center justify-center gap-xs text-sm", children: [_jsx("span", { className: "text-text-tertiary-600", children: "Don't have an account?" }), _jsx("button", { type: "submit", className: "text-button-tertiary-fg font-semibold", onClick: () => {
83
- dialog.setOpen(false);
84
- signUpStore.setOpen(true);
85
- }, children: "Sign up" })] })] })), step === 2 && (_jsxs(_Fragment, { children: [_jsx("h2", { className: "mt-xl text-center text-lg font-semibold", children: "Check your Phone" }), _jsxs("p", { className: "text-text-secondary-700 mt-xs text-center text-sm", children: ["We\u2019ve sent a verification code to your mobile number", ' ', _jsx("span", { className: "font-semibold", children: mobileNumberParser.format(step1Form.getValues('mobileNumber')) }), ' ', "via text"] }), _jsxs("form", { className: "mt-5", onSubmit: step2Form.handleSubmit(async ({ verificationCode }) => {
86
- const { mobileNumber } = step1Form.getValues();
87
- try {
88
- await signInMutation.mutateAsync({
89
- type: 'MOBILE_NUMBER',
90
- mobileNumber: mobileNumberParser.format(mobileNumber),
91
- verificationCode: verificationCode.join(''),
92
- });
93
- dialog.setOpen(false);
94
- step1Form.reset();
95
- step2Form.reset();
96
- setStep(1);
97
- }
98
- catch {
99
- toaster.error({
100
- description: 'Invalid Verification Code',
101
- });
102
- }
103
- }), children: [_jsx(Controller, { name: "verificationCode", control: step2Form.control, render: (o) => (_jsxs(PinInput.Root, { placeholder: "0", invalid: o.fieldState.invalid, value: o.field.value, onValueChange: (details) => {
104
- o.field.onChange(details.value);
105
- }, children: [_jsxs(PinInput.Control, { className: "grid-cols-[1fr_1fr_1fr_auto_1fr_1fr_1fr] items-center gap-md", children: [_jsx(PinInput.Input, { index: 0 }), _jsx(PinInput.Input, { index: 1 }), _jsx(PinInput.Input, { index: 2 }), _jsx("span", { className: "text-text-placeholder-subtle text-2xl font-medium", children: "\u2013" }), _jsx(PinInput.Input, { index: 3 }), _jsx(PinInput.Input, { index: 4 }), _jsx(PinInput.Input, { index: 5 })] }), _jsx(PinInput.HiddenInput, {})] })) }), _jsx(Button, { type: "submit", className: "mt-4xl", disabled: step2Form.formState.isSubmitting, children: "Verify" }), _jsxs("div", { className: "mt-3 flex w-full items-center justify-center gap-xs text-sm", children: [_jsx("span", { className: "text-text-secondary-700", children: "Didn't recieve the code?" }), _jsx("button", { type: "button", className: "text-button-secondary-fg font-semibold", disabled: cooldown.cooling, onClick: async () => {
106
- await sendVerificationCodeMutation.mutateAsync({
107
- channel: 'SMS',
108
- recipient: mobileNumberParser.format(step1Form.getValues('mobileNumber')),
109
- });
110
- cooldown.start();
111
- }, children: cooldown.cooling
112
- ? `Resend in ${cooldown.countdown}s`
113
- : 'Resend' })] }), _jsxs("button", { type: "button", className: "text-text-tertiary-600 mx-auto mt-3xl flex w-fit items-center gap-1 text-sm font-semibold", onClick: () => {
114
- setStep(1);
115
- step2Form.reset();
116
- cooldown.stop();
117
- }, children: [_jsx(ArrowLeftIcon, { className: "size-5" }), "Back"] })] })] }))] }));
8
+ const context = useSignInContext();
9
+ return (_jsxs(_Fragment, { children: [context.step === 1 && (_jsxs(_Fragment, { children: [_jsx("h2", { className: "mt-xl text-center text-lg font-semibold", children: "Log in to your account" }), _jsx("p", { className: "text-text-secondary-700 mt-xs text-center text-sm", children: "Welcome back! Please enter your details." })] })), _jsx(SignInMethod, {}), context.type === 'MOBILE_NUMBER' && _jsx(MobileNumberSignIn, {}), context.type === 'NAME_AND_PASSWORD' && _jsx(NameAndPasswordSignIn, {})] }));
118
10
  }
@@ -0,0 +1 @@
1
+ export declare function SignInMethod(): import("react/jsx-runtime").JSX.Element;
@@ -0,0 +1,19 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { z } from 'zod';
3
+ import { SegmentGroup } from '../../ui/index.js';
4
+ import { useSignInContext } from './SignInContext.js';
5
+ const METHODS = [
6
+ 'MOBILE_NUMBER',
7
+ 'NAME_AND_PASSWORD',
8
+ ];
9
+ const METHOD_LABEL_MAP = {
10
+ MOBILE_NUMBER: 'Mobile',
11
+ NAME_AND_PASSWORD: 'Username',
12
+ };
13
+ export function SignInMethod() {
14
+ const context = useSignInContext();
15
+ return (_jsxs(SegmentGroup.Root, { value: context.type, onValueChange: (details) => {
16
+ context.setStep(1);
17
+ context.setType(z.enum(METHODS).parse(details.value));
18
+ }, className: "mt-5 w-full", children: [_jsx(SegmentGroup.Indicator, {}), METHODS.map((method) => (_jsxs(SegmentGroup.Item, { value: method, className: "w-full", children: [_jsx(SegmentGroup.ItemText, { children: METHOD_LABEL_MAP[method] }), _jsx(SegmentGroup.ItemControl, {}), _jsx(SegmentGroup.ItemHiddenInput, {})] }, method)))] }));
19
+ }
@@ -0,0 +1,10 @@
1
+ type SignInStep = 1 | 2 | (number & {});
2
+ type SignInType = 'NAME_AND_PASSWORD' | 'MOBILE_NUMBER';
3
+ export interface UseSignInReturn {
4
+ step: SignInStep;
5
+ setStep: (step: SignInStep) => void;
6
+ type: SignInType;
7
+ setType: (type: SignInType) => void;
8
+ }
9
+ export declare function useSignIn(): UseSignInReturn;
10
+ export {};
@@ -0,0 +1,11 @@
1
+ import { useState } from 'react';
2
+ export function useSignIn() {
3
+ const [step, setStep] = useState(1);
4
+ const [type, setType] = useState('MOBILE_NUMBER');
5
+ return {
6
+ step,
7
+ setStep,
8
+ type,
9
+ setType,
10
+ };
11
+ }
@@ -6,6 +6,8 @@ export * from './Banner';
6
6
  export * from './BetRecords';
7
7
  export * from './Bonus';
8
8
  export * from './Bonuses';
9
+ export * from './Cashback';
10
+ export * from './CashbackBonus';
9
11
  export * from './DepositWithdrawal';
10
12
  export * from './Disclaimer';
11
13
  export * from './FavoriteGames';
@@ -6,6 +6,8 @@ export * from './Banner/index.js';
6
6
  export * from './BetRecords/index.js';
7
7
  export * from './Bonus/index.js';
8
8
  export * from './Bonuses/index.js';
9
+ export * from './Cashback/index.js';
10
+ export * from './CashbackBonus/index.js';
9
11
  export * from './DepositWithdrawal/index.js';
10
12
  export * from './Disclaimer/index.js';
11
13
  export * from './FavoriteGames/index.js';
@@ -1,4 +1,4 @@
1
- import type { GameProvider } from '@opexa/portal-sdk-core';
1
+ import type { SecretQuestion } from '@opexa/portal-sdk-core';
2
2
  export declare const SITE_ID: string;
3
3
  export declare const PLATFORM_ID: string;
4
4
  export declare const PLATFORM_CODE: string;
@@ -6,5 +6,7 @@ export declare const ENVIRONMENT: "production" | "development";
6
6
  export declare const BYPASS_RECAPTCHA: boolean;
7
7
  export declare const ACCESS_TOKEN_COOKIE_NAME: string;
8
8
  export declare const REFRESH_TOKEN_COOKIE_NAME: string;
9
- export declare const LEGACY_GAME_PROVIDERS: GameProvider[];
9
+ export declare const LEGACY_GAME_PROVIDERS: ["JILI", "PGSOFT", "FACHAI", "BTI", "DG", "PLAYTECH", "E2E", "ONEAPI_EVOLUTION", "CQ9", "JDB", "HABANERO", "SPINIX", "JOKER", "HACKSAW", "EVOLUTIONNETENT", "JDBGTF", "JDBSPRIBE", "MICROGAMING", "RELAXGAMING", "EVOPLAY", "BOOONGO", "BGAMING", "KINGMAKER", "KINGMIDAS", "YELLOWBAT", "ETENGJUE", "SABA", "PRAGMATICPLAY", "SPRIBE", "EZUGI", "ALIZE"];
10
10
  export declare const RECAPTCHA_HEADER_KEY: string;
11
+ export declare const SECRET_QUESTIONS: ["BEST_CHILDHOOD_FRIEND", "BIRTH_PLACE", "FAVORITE_BOOK", "FAVORITE_MOVIE", "FAVORITE_TEACHER", "FIRST_CAR", "FIRST_PET", "FIRST_SCHOOL", "MOTHERS_MAIDEN_NAME", "PARENTS_MET_CITY"];
12
+ export declare const SECRET_QUESTIONS_MAP: Record<SecretQuestion, string>;
@@ -62,3 +62,27 @@ export const LEGACY_GAME_PROVIDERS = [
62
62
  'ALIZE',
63
63
  ];
64
64
  export const RECAPTCHA_HEADER_KEY = 'Google-Recaptcha-Response';
65
+ export const SECRET_QUESTIONS = [
66
+ 'BEST_CHILDHOOD_FRIEND',
67
+ 'BIRTH_PLACE',
68
+ 'FAVORITE_BOOK',
69
+ 'FAVORITE_MOVIE',
70
+ 'FAVORITE_TEACHER',
71
+ 'FIRST_CAR',
72
+ 'FIRST_PET',
73
+ 'FIRST_SCHOOL',
74
+ 'MOTHERS_MAIDEN_NAME',
75
+ 'PARENTS_MET_CITY',
76
+ ];
77
+ export const SECRET_QUESTIONS_MAP = {
78
+ BEST_CHILDHOOD_FRIEND: 'What was the name of your best childhood friend?',
79
+ BIRTH_PLACE: 'What city were you born in?',
80
+ FAVORITE_BOOK: 'What is your favorite book?',
81
+ FAVORITE_MOVIE: 'What is your favorite movie?',
82
+ FAVORITE_TEACHER: 'Who was your favorite teacher in school?',
83
+ FIRST_CAR: 'What was the make and model of your first car?',
84
+ FIRST_PET: 'What was the name of your first pet?',
85
+ FIRST_SCHOOL: 'What was the name of your first school?',
86
+ MOTHERS_MAIDEN_NAME: "What is your mother's maiden name?",
87
+ PARENTS_MET_CITY: 'In what city did your parents meet?',
88
+ };
@@ -3,6 +3,10 @@ export * from './prefetchAvailablePromosQuery';
3
3
  export * from './prefetchAvailableQuestsQuery';
4
4
  export * from './prefetchBetRecordsQuery';
5
5
  export * from './prefetchBonusesQuery';
6
+ export * from './prefetchBonusQuery';
7
+ export * from './prefetchCashbackBonusesQuery';
8
+ export * from './prefetchCashbackBonusQuery';
9
+ export * from './prefetchCashbackQuery';
6
10
  export * from './prefetchCashbacksQuery';
7
11
  export * from './prefetchDepositQuery';
8
12
  export * from './prefetchDepositRecordsQuery';
@@ -3,6 +3,10 @@ export * from './prefetchAvailablePromosQuery.js';
3
3
  export * from './prefetchAvailableQuestsQuery.js';
4
4
  export * from './prefetchBetRecordsQuery.js';
5
5
  export * from './prefetchBonusesQuery.js';
6
+ export * from './prefetchBonusQuery.js';
7
+ export * from './prefetchCashbackBonusesQuery.js';
8
+ export * from './prefetchCashbackBonusQuery.js';
9
+ export * from './prefetchCashbackQuery.js';
6
10
  export * from './prefetchCashbacksQuery.js';
7
11
  export * from './prefetchDepositQuery.js';
8
12
  export * from './prefetchDepositRecordsQuery.js';
@@ -0,0 +1 @@
1
+ export declare const prefetchBonusQuery: (id: string) => Promise<void>;
@@ -0,0 +1,22 @@
1
+ import { getBonus } from '@opexa/portal-sdk-core';
2
+ import { ENVIRONMENT, PLATFORM_CODE } from '../../constants/index.js';
3
+ import { getBonusQueryKey, getQueryClient } from '../../utils/index.js';
4
+ import { getSession } from '../services/getSession.js';
5
+ export const prefetchBonusQuery = async (id) => {
6
+ const session = await getSession();
7
+ if (session.status === 'unauthenticated')
8
+ return;
9
+ await getQueryClient().prefetchQuery({
10
+ queryKey: getBonusQueryKey(id),
11
+ queryFn: async ({ signal }) => {
12
+ return await getBonus(id, {
13
+ signal,
14
+ environment: ENVIRONMENT,
15
+ headers: {
16
+ 'Platform-Code': PLATFORM_CODE,
17
+ Authorization: `Bearer ${session.token}`,
18
+ },
19
+ });
20
+ },
21
+ });
22
+ };
@@ -0,0 +1 @@
1
+ export declare const prefetchCashbackBonusQuery: (id: string) => Promise<void>;
@@ -0,0 +1,22 @@
1
+ import { getCashbackBonus } from '@opexa/portal-sdk-core';
2
+ import { ENVIRONMENT, PLATFORM_CODE } from '../../constants/index.js';
3
+ import { getCashbackBonusQueryKey, getQueryClient } from '../../utils/index.js';
4
+ import { getSession } from '../services/getSession.js';
5
+ export const prefetchCashbackBonusQuery = async (id) => {
6
+ const session = await getSession();
7
+ if (session.status === 'unauthenticated')
8
+ return;
9
+ await getQueryClient().prefetchQuery({
10
+ queryKey: getCashbackBonusQueryKey(id),
11
+ queryFn: async ({ signal }) => {
12
+ return await getCashbackBonus(id, {
13
+ signal,
14
+ environment: ENVIRONMENT,
15
+ headers: {
16
+ 'Platform-Code': PLATFORM_CODE,
17
+ Authorization: `Bearer ${session.token}`,
18
+ },
19
+ });
20
+ },
21
+ });
22
+ };
@@ -0,0 +1 @@
1
+ export declare const prefetchCashbackBonusesQuery: () => Promise<void>;
@@ -0,0 +1,22 @@
1
+ import { getCashbackBonuses } from '@opexa/portal-sdk-core';
2
+ import { ENVIRONMENT, PLATFORM_CODE } from '../../constants/index.js';
3
+ import { getCashbackBonusesQueryKey, getQueryClient } from '../../utils/index.js';
4
+ import { getSession } from '../services/index.js';
5
+ export const prefetchCashbackBonusesQuery = async () => {
6
+ const session = await getSession();
7
+ if (session.status === 'unauthenticated')
8
+ return;
9
+ await getQueryClient().prefetchQuery({
10
+ queryKey: getCashbackBonusesQueryKey(),
11
+ queryFn: async ({ signal }) => {
12
+ return await getCashbackBonuses({
13
+ signal,
14
+ environment: ENVIRONMENT,
15
+ headers: {
16
+ 'Platform-Code': PLATFORM_CODE,
17
+ Authorization: `Bearer ${session.token}`,
18
+ },
19
+ });
20
+ },
21
+ });
22
+ };
@@ -0,0 +1 @@
1
+ export declare const prefetchCashbackQuery: (id: string) => Promise<void>;
@@ -0,0 +1,17 @@
1
+ import { getCashback } from '@opexa/portal-sdk-core';
2
+ import { ENVIRONMENT, PLATFORM_CODE } from '../../constants/index.js';
3
+ import { getCashbackQueryKey, getQueryClient } from '../../utils/index.js';
4
+ export const prefetchCashbackQuery = async (id) => {
5
+ await getQueryClient().prefetchQuery({
6
+ queryKey: getCashbackQueryKey(id),
7
+ queryFn: async ({ signal }) => {
8
+ return await getCashback(id, {
9
+ signal,
10
+ environment: ENVIRONMENT,
11
+ headers: {
12
+ 'Platform-Code': PLATFORM_CODE,
13
+ },
14
+ });
15
+ },
16
+ });
17
+ };
@@ -69,3 +69,4 @@ export interface GameProviderData {
69
69
  logo: ImageProps['src'];
70
70
  name: string;
71
71
  }
72
+ export type SignInType = 'NAME_AND_PASSWORD' | 'MOBILE_NUMBER';