@oneblink/apps-react 4.0.0-beta.5 → 4.0.0-beta.7
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/README.md +2 -8
- package/dist/OneBlinkAutoSaveForm.d.ts +25 -5
- package/dist/OneBlinkAutoSaveForm.js +12 -0
- package/dist/OneBlinkAutoSaveForm.js.map +1 -1
- package/dist/OneBlinkForm.d.ts +558 -8
- package/dist/OneBlinkForm.js +546 -0
- package/dist/OneBlinkForm.js.map +1 -1
- package/dist/OneBlinkFormBase.d.ts +51 -6
- package/dist/OneBlinkFormBase.js.map +1 -1
- package/dist/OneBlinkReadOnlyForm.d.ts +83 -6
- package/dist/OneBlinkReadOnlyForm.js +79 -0
- package/dist/OneBlinkReadOnlyForm.js.map +1 -1
- package/dist/PaymentReceipt.d.ts +59 -0
- package/dist/PaymentReceipt.js +49 -0
- package/dist/PaymentReceipt.js.map +1 -1
- package/dist/components/formStore/FormStoreTableProvider.js +23 -1
- package/dist/components/formStore/FormStoreTableProvider.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.d.ts +5 -0
- package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js +5 -0
- package/dist/components/formStore/OneBlinkFormStoreClearFiltersButton.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreColumnsButton.d.ts +5 -0
- package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js +5 -0
- package/dist/components/formStore/OneBlinkFormStoreColumnsButton.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreDownloadButton.d.ts +5 -0
- package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js +5 -0
- package/dist/components/formStore/OneBlinkFormStoreDownloadButton.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreProvider.d.ts +5 -0
- package/dist/components/formStore/OneBlinkFormStoreProvider.js +5 -0
- package/dist/components/formStore/OneBlinkFormStoreProvider.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreRefreshButton.d.ts +5 -0
- package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js +5 -0
- package/dist/components/formStore/OneBlinkFormStoreRefreshButton.js.map +1 -1
- package/dist/components/formStore/OneBlinkFormStoreTable.d.ts +4 -0
- package/dist/components/formStore/OneBlinkFormStoreTable.js +4 -0
- package/dist/components/formStore/OneBlinkFormStoreTable.js.map +1 -1
- package/dist/components/pickers/V4CompatibleDatePicker.d.ts +5 -0
- package/dist/components/pickers/V4CompatibleDatePicker.js +5 -0
- package/dist/components/pickers/V4CompatibleDatePicker.js.map +1 -1
- package/dist/components/pickers/V4CompatibleDateTimePicker.d.ts +5 -0
- package/dist/components/pickers/V4CompatibleDateTimePicker.js +5 -0
- package/dist/components/pickers/V4CompatibleDateTimePicker.js.map +1 -1
- package/dist/components/pickers/V4CompatibleTimePicker.d.ts +5 -0
- package/dist/components/pickers/V4CompatibleTimePicker.js +5 -0
- package/dist/components/pickers/V4CompatibleTimePicker.js.map +1 -1
- package/dist/components/renderer/LookupNotification.js +11 -2
- package/dist/components/renderer/LookupNotification.js.map +1 -1
- package/dist/components/renderer/OneBlinkFormElements.d.ts +3 -3
- package/dist/components/renderer/OneBlinkFormElements.js.map +1 -1
- package/dist/components/renderer/PageFormElements.d.ts +3 -3
- package/dist/components/renderer/PageFormElements.js.map +1 -1
- package/dist/components/renderer/ProgressBar.d.ts +7 -3
- package/dist/components/renderer/ProgressBar.js +5 -0
- package/dist/components/renderer/ProgressBar.js.map +1 -1
- package/dist/form-elements/FormElementCalculation.js.map +1 -1
- package/dist/form-elements/FormElementForm.d.ts +4 -4
- package/dist/form-elements/FormElementForm.js.map +1 -1
- package/dist/form-elements/FormElementRepeatableSet.d.ts +4 -4
- package/dist/form-elements/FormElementRepeatableSet.js.map +1 -1
- package/dist/form-elements/FormElementSummary.js.map +1 -1
- package/dist/hooks/useAuth.d.ts +81 -6
- package/dist/hooks/useAuth.js +54 -0
- package/dist/hooks/useAuth.js.map +1 -1
- package/dist/hooks/useBooleanState.d.ts +42 -5
- package/dist/hooks/useBooleanState.js +36 -0
- package/dist/hooks/useBooleanState.js.map +1 -1
- package/dist/hooks/useClickOutsideElement.d.ts +40 -0
- package/dist/hooks/useClickOutsideElement.js +40 -0
- package/dist/hooks/useClickOutsideElement.js.map +1 -1
- package/dist/hooks/useConditionalLogic.d.ts +2 -3
- package/dist/hooks/useConditionalLogic.js.map +1 -1
- package/dist/hooks/useDrafts.d.ts +63 -1
- package/dist/hooks/useDrafts.js +58 -11
- package/dist/hooks/useDrafts.js.map +1 -1
- package/dist/hooks/useFormSubmissionAutoSaveState.d.ts +18 -5
- package/dist/hooks/useFormSubmissionAutoSaveState.js +10 -0
- package/dist/hooks/useFormSubmissionAutoSaveState.js.map +1 -1
- package/dist/hooks/useFormSubmissionModelContext.d.ts +4 -4
- package/dist/hooks/useFormSubmissionModelContext.js.map +1 -1
- package/dist/hooks/useFormSubmissionState.d.ts +45 -5
- package/dist/hooks/useFormSubmissionState.js +37 -0
- package/dist/hooks/useFormSubmissionState.js.map +1 -1
- package/dist/hooks/useFormValidation.d.ts +3 -3
- package/dist/hooks/useFormValidation.js.map +1 -1
- package/dist/hooks/useInjectPages.d.ts +2 -3
- package/dist/hooks/useInjectPages.js.map +1 -1
- package/dist/hooks/useIsMounted.d.ts +20 -0
- package/dist/hooks/useIsMounted.js +19 -0
- package/dist/hooks/useIsMounted.js.map +1 -1
- package/dist/hooks/useIsOffline.d.ts +54 -0
- package/dist/hooks/useIsOffline.js +54 -0
- package/dist/hooks/useIsOffline.js.map +1 -1
- package/dist/hooks/useLoadDataState.d.ts +46 -3
- package/dist/hooks/useLoadDataState.js +41 -0
- package/dist/hooks/useLoadDataState.js.map +1 -1
- package/dist/hooks/useLogin.d.ts +400 -13
- package/dist/hooks/useLogin.js +300 -0
- package/dist/hooks/useLogin.js.map +1 -1
- package/dist/hooks/useLookups.d.ts +3 -3
- package/dist/hooks/useLookups.js.map +1 -1
- package/dist/hooks/useNullableState.d.ts +46 -1
- package/dist/hooks/useNullableState.js +42 -1
- package/dist/hooks/useNullableState.js.map +1 -1
- package/dist/hooks/usePendingSubmissions.d.ts +103 -0
- package/dist/hooks/usePendingSubmissions.js +195 -0
- package/dist/hooks/usePendingSubmissions.js.map +1 -0
- package/dist/hooks/useSignUp.d.ts +5 -0
- package/dist/hooks/useSignUp.js +5 -0
- package/dist/hooks/useSignUp.js.map +1 -1
- package/dist/index.d.ts +6 -4
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/services/checkBsbsAreInvalid.d.ts +2 -3
- package/dist/services/checkBsbsAreInvalid.js.map +1 -1
- package/dist/services/checkIfAttachmentsExist.d.ts +2 -3
- package/dist/services/checkIfAttachmentsExist.js.map +1 -1
- package/dist/services/checkIfBsbsAreValidating.d.ts +2 -3
- package/dist/services/checkIfBsbsAreValidating.js.map +1 -1
- package/dist/services/cleanFormSubmissionModel.d.ts +4 -4
- package/dist/services/cleanFormSubmissionModel.js +2 -1
- package/dist/services/cleanFormSubmissionModel.js.map +1 -1
- package/dist/services/form-validation.d.ts +3 -3
- package/dist/services/form-validation.js.map +1 -1
- package/dist/services/generate-default-data.d.ts +2 -3
- package/dist/services/generate-default-data.js +3 -1
- package/dist/services/generate-default-data.js.map +1 -1
- package/dist/services/generateFreshdeskDependentFieldElements.js.map +1 -1
- package/dist/services/getDateRangeConfiguration.d.ts +2 -3
- package/dist/services/getDateRangeConfiguration.js.map +1 -1
- package/dist/services/getRepeatableSetEntriesConfiguration.d.ts +2 -3
- package/dist/services/getRepeatableSetEntriesConfiguration.js.map +1 -1
- package/dist/styles/receipt.scss +1 -1
- package/dist/styles/repeatable-set.scss +2 -2
- package/dist/typedoc.d.ts +2 -0
- package/dist/typedoc.js +3 -0
- package/dist/typedoc.js.map +1 -0
- package/dist/types/form.d.ts +5 -6
- package/dist/types/form.js.map +1 -1
- package/package.json +9 -3
package/dist/hooks/useLogin.d.ts
CHANGED
@@ -1,49 +1,436 @@
|
|
1
|
+
/**
|
2
|
+
* This function is a react hook to help writing your own login screen.
|
3
|
+
*
|
4
|
+
* ## Example
|
5
|
+
*
|
6
|
+
* ```jsx
|
7
|
+
* import * as React from 'react'
|
8
|
+
* import { useHistory } from 'react-router-dom'
|
9
|
+
* import { useLogin } from '@oneblink/apps-react'
|
10
|
+
*
|
11
|
+
* function App() {
|
12
|
+
* const history = useHistory()
|
13
|
+
*
|
14
|
+
* const [username, setUsername] = React.useState('')
|
15
|
+
* const [password, setPassword] = React.useState('')
|
16
|
+
* const [newPasswordConfirmed, setNewPasswordConfirmed] = React.useState('')
|
17
|
+
* const [newPassword, setNewPassword] = React.useState('')
|
18
|
+
* const [code, setCode] = React.useState('')
|
19
|
+
*
|
20
|
+
* const onLogin = React.useCallback(() => {
|
21
|
+
* history.push('/')
|
22
|
+
* }, [history])
|
23
|
+
*
|
24
|
+
* const {
|
25
|
+
* // Login
|
26
|
+
* loginWithGoogle,
|
27
|
+
* loginWithUsernamePassword,
|
28
|
+
* isLoggingIn,
|
29
|
+
* // Reset Temp Password
|
30
|
+
* isPasswordTemporary,
|
31
|
+
* isResettingTemporaryPassword,
|
32
|
+
* resetTemporaryPassword,
|
33
|
+
* // MFA Password
|
34
|
+
* isMfaCodeRequired,
|
35
|
+
* isSubmittingMfaCode,
|
36
|
+
* submitMfaCode,
|
37
|
+
* // Login Errors
|
38
|
+
* loginError,
|
39
|
+
* clearLoginError,
|
40
|
+
* // Showing Forgot Password
|
41
|
+
* isShowingForgotPassword,
|
42
|
+
* showForgotPassword,
|
43
|
+
* hideForgotPassword,
|
44
|
+
* // Sending Forgot Password Code
|
45
|
+
* isSendingForgotPasswordCode,
|
46
|
+
* sendForgotPasswordCode,
|
47
|
+
* // Resetting Forgotten Password
|
48
|
+
* hasSentForgotPasswordCode,
|
49
|
+
* isResettingForgottenPassword,
|
50
|
+
* resetForgottenPassword,
|
51
|
+
* // Forgot Password Errors
|
52
|
+
* forgotPasswordError,
|
53
|
+
* clearForgotPasswordError,
|
54
|
+
* // Validation
|
55
|
+
* usernameValidation,
|
56
|
+
* passwordValidation,
|
57
|
+
* codeValidation,
|
58
|
+
* newPasswordValidation,
|
59
|
+
* newPasswordConfirmedValidation,
|
60
|
+
* } = useLogin({
|
61
|
+
* username,
|
62
|
+
* password,
|
63
|
+
* newPassword,
|
64
|
+
* newPasswordConfirmed,
|
65
|
+
* code,
|
66
|
+
* onLogin,
|
67
|
+
* })
|
68
|
+
*
|
69
|
+
* if (hasSentForgotPasswordCode) {
|
70
|
+
* return (
|
71
|
+
* <form
|
72
|
+
* onSubmit={(e) => {
|
73
|
+
* e.preventDefault()
|
74
|
+
* resetForgottenPassword()
|
75
|
+
* }}
|
76
|
+
* >
|
77
|
+
* <p>We have sent you a password reset code via email. Enter it below to reset your password.</p>
|
78
|
+
*
|
79
|
+
* <input
|
80
|
+
* type="password"
|
81
|
+
* placeholder="Code"
|
82
|
+
* value={code}
|
83
|
+
* onChange={(e) => setCode(e.target.value)}
|
84
|
+
* />
|
85
|
+
*
|
86
|
+
* <input
|
87
|
+
* type="password"
|
88
|
+
* placeholder="New Password"
|
89
|
+
* value={newPassword}
|
90
|
+
* onChange={(e) => setNewPassword(e.target.value)}
|
91
|
+
* />
|
92
|
+
*
|
93
|
+
* <input
|
94
|
+
* type="password"
|
95
|
+
* placeholder="Confirm Password"
|
96
|
+
* value={newPassword}
|
97
|
+
* onChange={(e) => setNewPasswordConfirmed(e.target.value)}
|
98
|
+
* />
|
99
|
+
*
|
100
|
+
* <button
|
101
|
+
* type="submit"
|
102
|
+
* disabled={isResettingForgottenPassword || codeValidation.isInvalid || newPasswordValidation.isInvalid || newPasswordConfirmedValidation.isInvalid}
|
103
|
+
* >
|
104
|
+
* Change Password
|
105
|
+
* </button>
|
106
|
+
*
|
107
|
+
* <p>Password Requirements</p>
|
108
|
+
* <p>Contains a lowercase letter: {validation.hasLowercaseLetter ? 'Yes' : 'No'}</p>
|
109
|
+
* <p>Contains an upper case letter: {validation.hasUpperCaseLetter ? 'Yes' : 'No'}</p>
|
110
|
+
* <p>Contains a number: {validation.hasNumber ? 'Yes' : 'No'}</p>
|
111
|
+
* <p>Contains a special character: {validation.hasSpecialCharacter ? 'Yes' : 'No'}</p>
|
112
|
+
* <p>Contains at least 8 characters: {validation.hasMinLength ? 'Yes' : 'No'}</p>
|
113
|
+
*
|
114
|
+
* {forgotPasswordError && (
|
115
|
+
* <p>{forgotPasswordError.message}</p>
|
116
|
+
* <button type="button" onClick={clearForgotPasswordError}>Clear Error</button>
|
117
|
+
* )}
|
118
|
+
* </form>
|
119
|
+
* )
|
120
|
+
* }
|
121
|
+
*
|
122
|
+
* if (isShowingForgotPassword) {
|
123
|
+
* return (
|
124
|
+
* <form
|
125
|
+
* onSubmit={(e) => {
|
126
|
+
* e.preventDefault()
|
127
|
+
* sendForgotPasswordCode()
|
128
|
+
* }}
|
129
|
+
* >
|
130
|
+
* <p>Enter your email address and we will send you a code to reset your password.</p>
|
131
|
+
*
|
132
|
+
* <input
|
133
|
+
* type="email"
|
134
|
+
* placeholder="Email Address"
|
135
|
+
* value={username}
|
136
|
+
* onChange={(e) => setUsername(e.target.value)}
|
137
|
+
* />
|
138
|
+
*
|
139
|
+
* <p>
|
140
|
+
* <a onClick={hideForgotPassword}>Remembered your password?</a>
|
141
|
+
* </p>
|
142
|
+
*
|
143
|
+
* <button
|
144
|
+
* type="submit"
|
145
|
+
* disabled={isSendingForgotPasswordCode || usernameValidation.isInvalid}
|
146
|
+
* >
|
147
|
+
* Reset Password
|
148
|
+
* </button>
|
149
|
+
*
|
150
|
+
* {forgotPasswordError && (
|
151
|
+
* <p>{forgotPasswordError.message}</p>
|
152
|
+
* <button type="button" onClick={clearForgotPasswordError}>Clear Error</button>
|
153
|
+
* )}
|
154
|
+
* </form>
|
155
|
+
* )
|
156
|
+
* }
|
157
|
+
*
|
158
|
+
* if (isPasswordTemporary) {
|
159
|
+
* return (
|
160
|
+
* <form
|
161
|
+
* onSubmit={(e) => {
|
162
|
+
* e.preventDefault()
|
163
|
+
* resetTemporaryPassword()
|
164
|
+
* }}
|
165
|
+
* >
|
166
|
+
* <p>The password you entered was only temporary and must be reset for security purposes. Please enter your new password below to continue.</p>
|
167
|
+
*
|
168
|
+
* <input
|
169
|
+
* type="password"
|
170
|
+
* placeholder="New Password"
|
171
|
+
* value={newPassword}
|
172
|
+
* onChange={(e) => setNewPassword(e.target.value)}
|
173
|
+
* />
|
174
|
+
*
|
175
|
+
* <input
|
176
|
+
* type="password"
|
177
|
+
* placeholder="Confirm Password"
|
178
|
+
* value={newPassword}
|
179
|
+
* onChange={(e) => setNewPasswordConfirmed(e.target.value)}
|
180
|
+
* />
|
181
|
+
*
|
182
|
+
* <button
|
183
|
+
* type="submit"
|
184
|
+
* disabled={isResettingTemporaryPassword || newPasswordValidation.isInvalid || newPasswordConfirmedValidation.isInvalid}
|
185
|
+
* >
|
186
|
+
* Change Password & Sign In
|
187
|
+
* </button>
|
188
|
+
*
|
189
|
+
* <p>Password Requirements</p>
|
190
|
+
* <p>Contains a lowercase letter: {validation.hasLowercaseLetter ? 'Yes' : 'No'}</p>
|
191
|
+
* <p>Contains an upper case letter: {validation.hasUpperCaseLetter ? 'Yes' : 'No'}</p>
|
192
|
+
* <p>Contains a number: {validation.hasNumber ? 'Yes' : 'No'}</p>
|
193
|
+
* <p>Contains a special character: {validation.hasSpecialCharacter ? 'Yes' : 'No'}</p>
|
194
|
+
* <p>Contains at least 8 characters: {validation.hasMinLength ? 'Yes' : 'No'}</p>
|
195
|
+
*
|
196
|
+
* {loginError && (
|
197
|
+
* <p>{loginError.message}</p>
|
198
|
+
* <button type="button" onClick={clearLoginError}>Clear Error</button>
|
199
|
+
* )}
|
200
|
+
* </form>
|
201
|
+
* )
|
202
|
+
* }
|
203
|
+
*
|
204
|
+
* if (isMfaCodeRequired) {
|
205
|
+
* return (
|
206
|
+
* <form
|
207
|
+
* onSubmit={(e) => {
|
208
|
+
* e.preventDefault()
|
209
|
+
* submitMfaCode()
|
210
|
+
* }}
|
211
|
+
* >
|
212
|
+
* <p>Enter the 6-digit code found in your authenticator app.</p>
|
213
|
+
*
|
214
|
+
* <input
|
215
|
+
* type="password"
|
216
|
+
* placeholder="Code"
|
217
|
+
* value={code}
|
218
|
+
* onChange={(e) => setCode(e.target.value)}
|
219
|
+
* />
|
220
|
+
*
|
221
|
+
* <button
|
222
|
+
* type="submit"
|
223
|
+
* disabled={isSubmittingMfaCode || codeValidation.isInvalid}
|
224
|
+
* >
|
225
|
+
* Sign In
|
226
|
+
* </button>
|
227
|
+
*
|
228
|
+
* {loginError && (
|
229
|
+
* <p>{loginError.message}</p>
|
230
|
+
* <button type="button" onClick={clearLoginError}>Clear Error</button>
|
231
|
+
* )}
|
232
|
+
* </form>
|
233
|
+
* )
|
234
|
+
* }
|
235
|
+
*
|
236
|
+
* return (
|
237
|
+
* <form
|
238
|
+
* onSubmit={(e) => {
|
239
|
+
* e.preventDefault()
|
240
|
+
* loginWithUsernamePassword()
|
241
|
+
* }}
|
242
|
+
* >
|
243
|
+
* <p>Sign in with your email address and password.</p>
|
244
|
+
* <input
|
245
|
+
* type="email"
|
246
|
+
* placeholder="Email Address"
|
247
|
+
* value={username}
|
248
|
+
* onChange={(e) => setUsername(e.target.value)}
|
249
|
+
* />
|
250
|
+
*
|
251
|
+
* <input
|
252
|
+
* type="password"
|
253
|
+
* placeholder="New Password"
|
254
|
+
* value={newPassword}
|
255
|
+
* onChange={(e) => setNewPassword(e.target.value)}
|
256
|
+
* />
|
257
|
+
*
|
258
|
+
* <p>
|
259
|
+
* <a onClick={showForgotPassword}>Forgot your password?</a>
|
260
|
+
* </p>
|
261
|
+
*
|
262
|
+
* <button
|
263
|
+
* type="submit"
|
264
|
+
* disabled={isLoggingIn || usernameValidation.isInvalid || passwordValidation.isInvalid}
|
265
|
+
* >
|
266
|
+
* {children}
|
267
|
+
* </button>
|
268
|
+
*
|
269
|
+
* <p>or</p>
|
270
|
+
*
|
271
|
+
* <button
|
272
|
+
* type="button"
|
273
|
+
* onClick={loginWithGoogle}
|
274
|
+
* >
|
275
|
+
* <img
|
276
|
+
* alt="Google"
|
277
|
+
* src="google-sign-in.png"
|
278
|
+
* />
|
279
|
+
* <span>Sign in with Google</span>
|
280
|
+
* </button>
|
281
|
+
*
|
282
|
+
* {loginError && (
|
283
|
+
* <p>{loginError.message}</p>
|
284
|
+
* <button type="button" onClick={clearLoginError}>Clear Error</button>
|
285
|
+
* )}
|
286
|
+
* </form>
|
287
|
+
* )
|
288
|
+
* }
|
289
|
+
*
|
290
|
+
* const root = document.getElementById('root')
|
291
|
+
* if (root) {
|
292
|
+
* ReactDOM.render(<App />, root)
|
293
|
+
* }
|
294
|
+
* ```
|
295
|
+
*
|
296
|
+
* @param options
|
297
|
+
* @returns
|
298
|
+
* @group Hooks
|
299
|
+
*/
|
1
300
|
export default function useLogin({ username, password, newPassword, newPasswordConfirmed, code, }: {
|
301
|
+
/** The email address entered by the user. */
|
2
302
|
username: string;
|
303
|
+
/** The password entered by the user. */
|
3
304
|
password: string;
|
305
|
+
/** The new password entered by the user if changing their password. */
|
4
306
|
newPassword: string;
|
307
|
+
/**
|
308
|
+
* The new password repeated by the user if changing their password to ensure
|
309
|
+
* they do type it in wrong.
|
310
|
+
*/
|
5
311
|
newPasswordConfirmed: string;
|
312
|
+
/**
|
313
|
+
* The code sent to the user after requesting a password reset by starting the
|
314
|
+
* "forgot password" process.
|
315
|
+
*/
|
6
316
|
code: string;
|
7
|
-
}):
|
317
|
+
}): UseLoginValue;
|
318
|
+
export interface UseLoginValue {
|
319
|
+
/** Open redirect user to the Google sign-in page. */
|
8
320
|
loginWithGoogle: () => void;
|
9
|
-
|
321
|
+
/**
|
322
|
+
* Attempt to use the `username` and `password` arguments to create a session.
|
323
|
+
* Will call `onLogin()` if successful, otherwise will set `loginError`.
|
324
|
+
*/
|
325
|
+
loginWithUsernamePassword: () => void;
|
326
|
+
/** `true` while processing `loginWithUsernamePassword()`. */
|
10
327
|
isLoggingIn: boolean;
|
328
|
+
/**
|
329
|
+
* `true` if the user logged in using a temporary password. Prompt the user
|
330
|
+
* for a new password and call `resetTemporaryPassword()`.
|
331
|
+
*/
|
332
|
+
isPasswordTemporary: boolean;
|
333
|
+
/**
|
334
|
+
* Attempt to use `newPassword` and `newPasswordConfirmed` arguments to reset
|
335
|
+
* the user's password and create a session. Will call `onLogin()` if
|
336
|
+
* successful, otherwise will set `loginError`.
|
337
|
+
*/
|
338
|
+
resetTemporaryPassword: () => void;
|
339
|
+
/**
|
340
|
+
* Set if an error occurs while processing `loginWithUsernamePassword()` or
|
341
|
+
* `resetTemporaryPassword()`.
|
342
|
+
*/
|
11
343
|
loginError: Error | null;
|
344
|
+
/** Set `loginError` back to `null`. */
|
12
345
|
clearLoginError: () => void;
|
13
|
-
|
346
|
+
/** `true` while processing `resetTemporaryPassword()`. */
|
14
347
|
isResettingTemporaryPassword: boolean;
|
15
|
-
|
16
|
-
isMfaCodeRequired: boolean;
|
17
|
-
isSubmittingMfaCode: boolean;
|
18
|
-
submitMfaCode: () => Promise<void>;
|
348
|
+
/** `true` when showing the forgot password flow. */
|
19
349
|
isShowingForgotPassword: boolean;
|
350
|
+
/** Set `isShowingForgotPassword` to `true`. */
|
20
351
|
showForgotPassword: () => void;
|
352
|
+
/** Set `isShowingForgotPassword` to `false`. */
|
21
353
|
hideForgotPassword: () => void;
|
22
|
-
|
23
|
-
|
354
|
+
/**
|
355
|
+
* Attempt to use the `username` argument to start the forgot password
|
356
|
+
* process. This will send the user an email with a code to enter. A failed
|
357
|
+
* request will set `forgotPasswordError`.
|
358
|
+
*/
|
359
|
+
sendForgotPasswordCode: () => void;
|
360
|
+
/** `true` while processing `sendForgotPasswordCode()`. */
|
24
361
|
isSendingForgotPasswordCode: boolean;
|
25
|
-
|
362
|
+
/** `true` if the forgot password code has been successfully sent to the user. */
|
26
363
|
hasSentForgotPasswordCode: boolean;
|
364
|
+
/**
|
365
|
+
* Attempt to use the `code`, `newPassword`, and `newPasswordConfirmed`
|
366
|
+
* arguments to reset the user's password. A failed request will set
|
367
|
+
* `forgotPasswordError`.
|
368
|
+
*/
|
369
|
+
resetForgottenPassword: () => void;
|
370
|
+
/** `true` while processing `resetForgottenPassword()`. */
|
27
371
|
isResettingForgottenPassword: boolean;
|
28
|
-
|
372
|
+
/**
|
373
|
+
* Set if an error occurs while processing `sendForgotPasswordCode()` or
|
374
|
+
* `resetForgottenPassword()`.
|
375
|
+
*/
|
376
|
+
forgotPasswordError: Error | null;
|
377
|
+
/** Set `forgotPasswordError` back to `null`. */
|
378
|
+
clearForgotPasswordError: () => void;
|
29
379
|
usernameValidation: {
|
380
|
+
/** `true` if the `username` argument is invalid. */
|
30
381
|
isInvalid: boolean;
|
31
382
|
};
|
32
383
|
passwordValidation: {
|
384
|
+
/** `true` if the `password` argument is invalid. */
|
33
385
|
isInvalid: boolean;
|
34
386
|
};
|
35
387
|
codeValidation: {
|
388
|
+
/** `true` if the `code` argument is invalid. */
|
36
389
|
isInvalid: boolean;
|
37
390
|
};
|
38
391
|
newPasswordValidation: {
|
392
|
+
/** `true` if the `newPassword` argument is invalid. */
|
393
|
+
isInvalid: boolean;
|
394
|
+
/**
|
395
|
+
* `true` if the `newPassword` argument has a lowercase letter (required to
|
396
|
+
* be valid).
|
397
|
+
*/
|
39
398
|
hasLowercaseLetter: boolean;
|
399
|
+
/**
|
400
|
+
* `true` if the `newPassword` argument has an uppercase letter (required to
|
401
|
+
* be valid).
|
402
|
+
*/
|
40
403
|
hasUpperCaseLetter: boolean;
|
404
|
+
/** `true` if the `newPassword` argument has a number (required to be valid). */
|
41
405
|
hasNumber: boolean;
|
406
|
+
/**
|
407
|
+
* `true` if the `newPassword` argument has a special character (required to
|
408
|
+
* be valid).
|
409
|
+
*/
|
42
410
|
hasSpecialCharacter: boolean;
|
411
|
+
/**
|
412
|
+
* `true` if the `newPassword` argument has at least the minimum number of
|
413
|
+
* characters (required to be valid).
|
414
|
+
*/
|
43
415
|
hasMinLength: boolean;
|
44
|
-
isInvalid: boolean;
|
45
416
|
};
|
46
417
|
newPasswordConfirmedValidation: {
|
418
|
+
/**
|
419
|
+
* `true` if the `newPasswordConfirmed` argument is invalid (must match the
|
420
|
+
* `newPassword` argument).
|
421
|
+
*/
|
47
422
|
isInvalid: boolean;
|
48
423
|
};
|
49
|
-
|
424
|
+
/**
|
425
|
+
* `true` if the user logged in using MFA and a code is required to finish the
|
426
|
+
* login attempt. Prompt the user for a code and call `submitMfaCode()`.
|
427
|
+
*/
|
428
|
+
isMfaCodeRequired: boolean;
|
429
|
+
/** `true` while processing `submitMfaCode()`. */
|
430
|
+
isSubmittingMfaCode: boolean;
|
431
|
+
/**
|
432
|
+
* Attempt to use `code` argument to submit the MFA code and create a session.
|
433
|
+
* Will call `onLogin()` if successful, otherwise will set `loginError`.
|
434
|
+
*/
|
435
|
+
submitMfaCode: () => void;
|
436
|
+
}
|