@sparkvault/sdk-mobile 7.1.7 → 7.1.8
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 -0
- package/dist/identity-dialog.js +86 -9
- package/dist/identity-dialog.js.map +1 -1
- package/package.json +1 -1
- package/src/identity-dialog.tsx +107 -13
package/README.md
CHANGED
|
@@ -84,6 +84,8 @@ The SDK depends on `tweetnacl` for Ed25519 Identity JWT verification and declare
|
|
|
84
84
|
|
|
85
85
|
Sign-in is code-only. The native passkey ceremony does not work in the mobile app, so the dialog never offers `passkey` even when the tenant has it enabled; `products.identity` still exposes the passkey APIs for a host that drives the ceremony itself.
|
|
86
86
|
|
|
87
|
+
The identity field takes focus as the dialog opens and the keyboard's Go sends the code. It stays editable through the send, dropping what is typed meanwhile, so the keyboard carries straight on to the code field. The code field then takes focus with the `one-time-code` content type (the platform's code AutoFill) and verifies the moment its sixth digit lands, once per code; a refused code empties it and gives it focus back. "Use a different email" (or phone number) returns to the identity field. Each opening starts idle, even while the host is still handling an earlier opening's `onSuccess`.
|
|
88
|
+
|
|
87
89
|
```tsx
|
|
88
90
|
import { SparkVaultIdentityDialog } from '@sparkvault/sdk-mobile/identity-dialog';
|
|
89
91
|
|
package/dist/identity-dialog.js
CHANGED
|
@@ -10,6 +10,12 @@ import { identityKeyboardType, inferIdentityType, parseIdentity } from './identi
|
|
|
10
10
|
* for a host that drives the ceremony itself.
|
|
11
11
|
*/
|
|
12
12
|
const SUPPORTED_METHODS = new Set(['otp_email', 'otp_sms', 'otp_voice']);
|
|
13
|
+
/**
|
|
14
|
+
* The Identity Product's one-time codes are six digits (its otp-service
|
|
15
|
+
* generatePin), so the code field takes six and verifies a code the moment
|
|
16
|
+
* its last digit lands.
|
|
17
|
+
*/
|
|
18
|
+
const CODE_LENGTH = 6;
|
|
13
19
|
export function SparkVaultIdentityDialog({ client, visible, initialIdentity, initialIdentityType, onSuccess, onCancel, onError, }) {
|
|
14
20
|
const [step, setStep] = useState('loading');
|
|
15
21
|
const [config, setConfig] = useState(null);
|
|
@@ -27,9 +33,23 @@ export function SparkVaultIdentityDialog({ client, visible, initialIdentity, ini
|
|
|
27
33
|
/** A branding logo that failed to load, so the header falls back to the name. */
|
|
28
34
|
const [brokenLogoUri, setBrokenLogoUri] = useState(null);
|
|
29
35
|
const sessionRef = useRef(0);
|
|
36
|
+
const codeInputRef = useRef(null);
|
|
37
|
+
/**
|
|
38
|
+
* A verification in flight. A second complete code that lands before React
|
|
39
|
+
* re-renders the busy state (iOS AutoFill can deliver one twice) is
|
|
40
|
+
* ignored, never verified alongside it.
|
|
41
|
+
*/
|
|
42
|
+
const verifyingRef = useRef(false);
|
|
43
|
+
/**
|
|
44
|
+
* Set when the code field takes focus again once it is editable: after the
|
|
45
|
+
* Identity Product refused a code, and after a new code was asked for, so
|
|
46
|
+
* the person can enter the next one straight away.
|
|
47
|
+
*/
|
|
48
|
+
const refocusCodeRef = useRef(false);
|
|
30
49
|
const onSuccessRef = useRef(onSuccess);
|
|
31
50
|
const onCancelRef = useRef(onCancel);
|
|
32
51
|
const onErrorRef = useRef(onError);
|
|
52
|
+
const codeEditable = !isBusy && countdown !== 'Expired';
|
|
33
53
|
const branding = config?.branding;
|
|
34
54
|
const effectiveTheme = branding?.themeMode ?? 'light';
|
|
35
55
|
const colors = effectiveTheme === 'dark' ? darkColors : lightColors;
|
|
@@ -48,6 +68,13 @@ export function SparkVaultIdentityDialog({ client, visible, initialIdentity, ini
|
|
|
48
68
|
let cancelled = false;
|
|
49
69
|
const sessionId = sessionRef.current + 1;
|
|
50
70
|
sessionRef.current = sessionId;
|
|
71
|
+
verifyingRef.current = false;
|
|
72
|
+
refocusCodeRef.current = false;
|
|
73
|
+
// Each opening starts idle: a request of an earlier one can still be
|
|
74
|
+
// running (a host that hid the dialog on success is exchanging the
|
|
75
|
+
// token), and its finally, of another session, never clears the busy
|
|
76
|
+
// state it set.
|
|
77
|
+
setIsBusy(false);
|
|
51
78
|
setStep('loading');
|
|
52
79
|
setError('');
|
|
53
80
|
setPin('');
|
|
@@ -97,6 +124,16 @@ export function SparkVaultIdentityDialog({ client, visible, initialIdentity, ini
|
|
|
97
124
|
const timer = setInterval(updateCountdown, 1000);
|
|
98
125
|
return () => clearInterval(timer);
|
|
99
126
|
}, [expiresAt, step]);
|
|
127
|
+
// The code field is not editable while a request runs or once its code has
|
|
128
|
+
// expired, and a field that is not editable cannot take focus: it takes it
|
|
129
|
+
// again only once it is editable (after a new code, once the countdown has
|
|
130
|
+
// moved off Expired).
|
|
131
|
+
useEffect(() => {
|
|
132
|
+
if (step !== 'otp' || !codeEditable || !refocusCodeRef.current)
|
|
133
|
+
return;
|
|
134
|
+
refocusCodeRef.current = false;
|
|
135
|
+
codeInputRef.current?.focus();
|
|
136
|
+
}, [codeEditable, step]);
|
|
100
137
|
const finishWithToken = useCallback(async (result, sessionId) => {
|
|
101
138
|
const jwks = await client.products.identity.getJwks();
|
|
102
139
|
if (!isActiveSession(sessionRef, sessionId))
|
|
@@ -168,16 +205,19 @@ export function SparkVaultIdentityDialog({ client, visible, initialIdentity, ini
|
|
|
168
205
|
}
|
|
169
206
|
setStep('methods');
|
|
170
207
|
}, [allowedTypes, config, identity, isBusy, sendOtp]);
|
|
171
|
-
|
|
172
|
-
|
|
208
|
+
// Takes the code as entered rather than the pin state: a code completed by
|
|
209
|
+
// the keystroke that is being handled has not reached that state yet.
|
|
210
|
+
const verifyCode = useCallback(async (code) => {
|
|
211
|
+
if (!kindling || code.length !== CODE_LENGTH || verifyingRef.current)
|
|
173
212
|
return;
|
|
213
|
+
verifyingRef.current = true;
|
|
174
214
|
const sessionId = sessionRef.current;
|
|
175
215
|
setIsBusy(true);
|
|
176
216
|
setError('');
|
|
177
217
|
try {
|
|
178
218
|
const result = await client.products.identity.verifyOtp({
|
|
179
219
|
kindling,
|
|
180
|
-
pin,
|
|
220
|
+
pin: code,
|
|
181
221
|
recipient: identity,
|
|
182
222
|
});
|
|
183
223
|
await finishWithToken(result, sessionId);
|
|
@@ -193,19 +233,34 @@ export function SparkVaultIdentityDialog({ client, visible, initialIdentity, ini
|
|
|
193
233
|
setExpiresAt(apiError.data.expires_at);
|
|
194
234
|
}
|
|
195
235
|
setPin('');
|
|
236
|
+
refocusCodeRef.current = true;
|
|
196
237
|
reportError(err, 'Verification failed');
|
|
197
238
|
}
|
|
198
239
|
finally {
|
|
240
|
+
// Only this session's own verification is cleared: a dialog closed
|
|
241
|
+
// meanwhile starts its next opening clear (the open effect).
|
|
199
242
|
if (isActiveSession(sessionRef, sessionId)) {
|
|
243
|
+
verifyingRef.current = false;
|
|
200
244
|
setIsBusy(false);
|
|
201
245
|
}
|
|
202
246
|
}
|
|
203
|
-
}, [client, finishWithToken, identity, kindling,
|
|
247
|
+
}, [client, finishWithToken, identity, kindling, reportError]);
|
|
204
248
|
const handleResend = useCallback(async () => {
|
|
205
249
|
if (!selectedMethod)
|
|
206
250
|
return;
|
|
251
|
+
refocusCodeRef.current = true;
|
|
207
252
|
await sendOtp(selectedMethod);
|
|
208
253
|
}, [selectedMethod, sendOtp]);
|
|
254
|
+
// Back to the identifier step with what was entered, to correct a mistyped
|
|
255
|
+
// address or number: the code sent to it is dropped.
|
|
256
|
+
const handleChangeIdentity = useCallback(() => {
|
|
257
|
+
setStep('identity');
|
|
258
|
+
setPin('');
|
|
259
|
+
setError('');
|
|
260
|
+
setKindling(null);
|
|
261
|
+
setExpiresAt(null);
|
|
262
|
+
setSelectedMethod(null);
|
|
263
|
+
}, []);
|
|
209
264
|
const handleRetryConfig = useCallback(() => {
|
|
210
265
|
const sessionId = sessionRef.current + 1;
|
|
211
266
|
sessionRef.current = sessionId;
|
|
@@ -259,12 +314,23 @@ export function SparkVaultIdentityDialog({ client, visible, initialIdentity, ini
|
|
|
259
314
|
? current
|
|
260
315
|
: { uri: logoUri, aspectRatio }));
|
|
261
316
|
}, onError: () => setBrokenLogoUri(logoUri) })) : (_jsxs(_Fragment, { children: [_jsx(View, { style: [styles.logoFallback, { backgroundColor: colors.primarySoft }], children: _jsx(Text, { style: [styles.logoFallbackText, { color: colors.primary }], children: companyName.slice(0, 1).toUpperCase() }) }), _jsx(Text, { style: [styles.companyName, { color: colors.text }], children: companyName })] })) }), _jsx(Pressable, { accessibilityRole: "button", accessibilityLabel: "Close identity verification", onPress: handleCancel, hitSlop: 12, style: styles.closeButton, children: _jsx(Text, { style: [styles.closeText, { color: colors.muted }], children: "\u2715" }) })] }), step === 'loading' && (_jsxs(View, { style: styles.centerContent, children: [_jsx(ActivityIndicator, { color: colors.primary }), _jsx(Text, { style: [styles.mutedText, { color: colors.muted }], children: "Loading sign-in options..." })] })), step === 'identity' && (_jsxs(View, { style: styles.body, children: [_jsx(Text, { style: [styles.title, { color: colors.text }], children: "Sign in" }), _jsx(Text, { style: [styles.subtitle, { color: colors.muted }], children: identitySubtitle(allowedTypes) }), _jsx(TextInput, { value: identity, onChangeText: (value) => {
|
|
317
|
+
// The code goes to the address as it was sent, so an edit
|
|
318
|
+
// made while it is being sent is dropped.
|
|
319
|
+
if (isBusy)
|
|
320
|
+
return;
|
|
262
321
|
setIdentity(value);
|
|
263
322
|
setError('');
|
|
264
323
|
if (allowedTypes.length > 1) {
|
|
265
324
|
setIdentityType(inferIdentityType(value));
|
|
266
325
|
}
|
|
267
|
-
}, placeholder: identityPlaceholder(allowedTypes), placeholderTextColor: colors.placeholder, autoCapitalize: "none", autoCorrect: false, autoComplete: identityType === 'phone' ? 'tel' : 'email', keyboardType: identityKeyboardType(allowedTypes),
|
|
326
|
+
}, placeholder: identityPlaceholder(allowedTypes), placeholderTextColor: colors.placeholder, autoCapitalize: "none", autoCorrect: false, autoComplete: identityType === 'phone' ? 'tel' : 'email', keyboardType: identityKeyboardType(allowedTypes), autoFocus: true, returnKeyType: "go",
|
|
327
|
+
// Go sends without dismissing the keyboard, and the field
|
|
328
|
+
// stays editable through the send (iOS ends the editing of
|
|
329
|
+
// a field made not editable, and the keyboard goes with
|
|
330
|
+
// it): the code field takes the keyboard straight from
|
|
331
|
+
// this one, and an address the send refuses is corrected
|
|
332
|
+
// with the keyboard still up.
|
|
333
|
+
submitBehavior: "submit", onSubmitEditing: () => void handleIdentitySubmit(), style: [
|
|
268
334
|
styles.input,
|
|
269
335
|
{
|
|
270
336
|
borderColor: error ? colors.error : colors.border,
|
|
@@ -278,17 +344,25 @@ export function SparkVaultIdentityDialog({ client, visible, initialIdentity, ini
|
|
|
278
344
|
backgroundColor: pressed ? colors.pressed : colors.input,
|
|
279
345
|
opacity: isBusy ? 0.6 : 1,
|
|
280
346
|
},
|
|
281
|
-
], children: [_jsx(Text, { style: [styles.methodTitle, { color: colors.text }], children: methodTitle(method) }), _jsx(Text, { style: [styles.methodDescription, { color: colors.muted }], children: methodDescription(method) })] }, method))) }), error ? _jsx(Text, { style: [styles.error, { color: colors.error }], children: error }) : null, allowedTypes.length > 0 ? (_jsx(TextButton, { label:
|
|
282
|
-
|
|
347
|
+
], children: [_jsx(Text, { style: [styles.methodTitle, { color: colors.text }], children: methodTitle(method) }), _jsx(Text, { style: [styles.methodDescription, { color: colors.muted }], children: methodDescription(method) })] }, method))) }), error ? _jsx(Text, { style: [styles.error, { color: colors.error }], children: error }) : null, allowedTypes.length > 0 ? (_jsx(TextButton, { label: changeIdentityLabel(identityType), colors: colors, onPress: handleChangeIdentity, disabled: isBusy })) : null] })), step === 'otp' && (_jsxs(View, { style: styles.body, children: [_jsx(Text, { style: [styles.title, { color: colors.text }], children: otpTitle(selectedMethod) }), _jsxs(Text, { style: [styles.subtitle, { color: colors.muted }], children: ["Enter the ", CODE_LENGTH, "-digit code sent to ", '\n', _jsx(Text, { style: { color: colors.text, fontWeight: '700' }, children: identity })] }), _jsx(TextInput, { ref: codeInputRef, value: pin, onChangeText: (value) => {
|
|
348
|
+
const code = value.replace(/\D/g, '').slice(0, CODE_LENGTH);
|
|
349
|
+
setPin(code);
|
|
283
350
|
setError('');
|
|
284
|
-
|
|
351
|
+
// A complete code verifies at once, whether it was typed,
|
|
352
|
+
// pasted or filled in from iOS's code suggestion.
|
|
353
|
+
if (code.length === CODE_LENGTH)
|
|
354
|
+
void verifyCode(code);
|
|
355
|
+
}, accessibilityLabel: "Verification code", placeholder: '0'.repeat(CODE_LENGTH), placeholderTextColor: colors.placeholder, keyboardType: "number-pad",
|
|
356
|
+
// iOS offers the code from Messages and Mail above the
|
|
357
|
+
// keyboard (Android's SMS code autofill reads the same hint).
|
|
358
|
+
autoComplete: "one-time-code", autoFocus: true, maxLength: CODE_LENGTH, editable: codeEditable, style: [
|
|
285
359
|
styles.pinInput,
|
|
286
360
|
{
|
|
287
361
|
borderColor: error ? colors.error : colors.border,
|
|
288
362
|
color: colors.text,
|
|
289
363
|
backgroundColor: colors.input,
|
|
290
364
|
},
|
|
291
|
-
] }), _jsx(Text, { style: [styles.countdown, { color: countdown === 'Expired' ? colors.error : colors.muted }], children: countdown === 'Expired' ? 'Code expired' : `Expires in ${countdown}` }), error ? _jsx(Text, { style: [styles.error, { color: colors.error }], children: error }) : null, _jsx(PrimaryButton, { label: "Verify", colors: colors, disabled: pin.length !==
|
|
365
|
+
] }), _jsx(Text, { style: [styles.countdown, { color: countdown === 'Expired' ? colors.error : colors.muted }], children: countdown === 'Expired' ? 'Code expired' : `Expires in ${countdown}` }), error ? _jsx(Text, { style: [styles.error, { color: colors.error }], children: error }) : null, _jsx(PrimaryButton, { label: "Verify", colors: colors, disabled: pin.length !== CODE_LENGTH || isBusy || countdown === 'Expired', loading: isBusy, onPress: () => void verifyCode(pin) }), _jsx(TextButton, { label: "Resend code", colors: colors, onPress: handleResend, disabled: isBusy }), _jsx(TextButton, { label: changeIdentityLabel(identityType), colors: colors, onPress: handleChangeIdentity, disabled: isBusy })] })), step === 'error' && (_jsxs(View, { style: styles.body, children: [_jsx(Text, { style: [styles.title, { color: colors.text }], children: "Sign-in unavailable" }), _jsx(Text, { style: [styles.error, { color: colors.error }], children: error }), _jsx(PrimaryButton, { label: "Try Again", colors: colors, disabled: isBusy, loading: isBusy, onPress: handleRetryConfig })] }))] }) }) }) }));
|
|
292
366
|
}
|
|
293
367
|
function isActiveSession(sessionRef, sessionId) {
|
|
294
368
|
return sessionRef.current === sessionId;
|
|
@@ -364,6 +438,9 @@ function identityPlaceholder(allowedTypes) {
|
|
|
364
438
|
return '+14155551234';
|
|
365
439
|
return 'name@company.com';
|
|
366
440
|
}
|
|
441
|
+
function changeIdentityLabel(identityType) {
|
|
442
|
+
return identityType === 'phone' ? 'Use a different phone number' : 'Use a different email';
|
|
443
|
+
}
|
|
367
444
|
function otpTitle(method) {
|
|
368
445
|
if (method === 'otp_sms')
|
|
369
446
|
return 'Check your messages';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"identity-dialog.js","sourceRoot":"","sources":["../src/identity-dialog.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"identity-dialog.js","sourceRoot":"","sources":["../src/identity-dialog.tsx"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/identity-dialog.tsx
CHANGED
|
@@ -45,6 +45,13 @@ export interface SparkVaultIdentityDialogProps {
|
|
|
45
45
|
*/
|
|
46
46
|
const SUPPORTED_METHODS = new Set<IdentityMethodId>(['otp_email', 'otp_sms', 'otp_voice']);
|
|
47
47
|
|
|
48
|
+
/**
|
|
49
|
+
* The Identity Product's one-time codes are six digits (its otp-service
|
|
50
|
+
* generatePin), so the code field takes six and verifies a code the moment
|
|
51
|
+
* its last digit lands.
|
|
52
|
+
*/
|
|
53
|
+
const CODE_LENGTH = 6;
|
|
54
|
+
|
|
48
55
|
export function SparkVaultIdentityDialog({
|
|
49
56
|
client,
|
|
50
57
|
visible,
|
|
@@ -70,10 +77,24 @@ export function SparkVaultIdentityDialog({
|
|
|
70
77
|
/** A branding logo that failed to load, so the header falls back to the name. */
|
|
71
78
|
const [brokenLogoUri, setBrokenLogoUri] = useState<string | null>(null);
|
|
72
79
|
const sessionRef = useRef(0);
|
|
80
|
+
const codeInputRef = useRef<TextInput>(null);
|
|
81
|
+
/**
|
|
82
|
+
* A verification in flight. A second complete code that lands before React
|
|
83
|
+
* re-renders the busy state (iOS AutoFill can deliver one twice) is
|
|
84
|
+
* ignored, never verified alongside it.
|
|
85
|
+
*/
|
|
86
|
+
const verifyingRef = useRef(false);
|
|
87
|
+
/**
|
|
88
|
+
* Set when the code field takes focus again once it is editable: after the
|
|
89
|
+
* Identity Product refused a code, and after a new code was asked for, so
|
|
90
|
+
* the person can enter the next one straight away.
|
|
91
|
+
*/
|
|
92
|
+
const refocusCodeRef = useRef(false);
|
|
73
93
|
const onSuccessRef = useRef(onSuccess);
|
|
74
94
|
const onCancelRef = useRef(onCancel);
|
|
75
95
|
const onErrorRef = useRef(onError);
|
|
76
96
|
|
|
97
|
+
const codeEditable = !isBusy && countdown !== 'Expired';
|
|
77
98
|
const branding = config?.branding;
|
|
78
99
|
const effectiveTheme = branding?.themeMode ?? 'light';
|
|
79
100
|
const colors = effectiveTheme === 'dark' ? darkColors : lightColors;
|
|
@@ -98,6 +119,13 @@ export function SparkVaultIdentityDialog({
|
|
|
98
119
|
let cancelled = false;
|
|
99
120
|
const sessionId = sessionRef.current + 1;
|
|
100
121
|
sessionRef.current = sessionId;
|
|
122
|
+
verifyingRef.current = false;
|
|
123
|
+
refocusCodeRef.current = false;
|
|
124
|
+
// Each opening starts idle: a request of an earlier one can still be
|
|
125
|
+
// running (a host that hid the dialog on success is exchanging the
|
|
126
|
+
// token), and its finally, of another session, never clears the busy
|
|
127
|
+
// state it set.
|
|
128
|
+
setIsBusy(false);
|
|
101
129
|
setStep('loading');
|
|
102
130
|
setError('');
|
|
103
131
|
setPin('');
|
|
@@ -150,6 +178,16 @@ export function SparkVaultIdentityDialog({
|
|
|
150
178
|
return () => clearInterval(timer);
|
|
151
179
|
}, [expiresAt, step]);
|
|
152
180
|
|
|
181
|
+
// The code field is not editable while a request runs or once its code has
|
|
182
|
+
// expired, and a field that is not editable cannot take focus: it takes it
|
|
183
|
+
// again only once it is editable (after a new code, once the countdown has
|
|
184
|
+
// moved off Expired).
|
|
185
|
+
useEffect(() => {
|
|
186
|
+
if (step !== 'otp' || !codeEditable || !refocusCodeRef.current) return;
|
|
187
|
+
refocusCodeRef.current = false;
|
|
188
|
+
codeInputRef.current?.focus();
|
|
189
|
+
}, [codeEditable, step]);
|
|
190
|
+
|
|
153
191
|
const finishWithToken = useCallback(async (result: IdentityVerifyResult, sessionId: number) => {
|
|
154
192
|
const jwks = await client.products.identity.getJwks();
|
|
155
193
|
if (!isActiveSession(sessionRef, sessionId)) return;
|
|
@@ -229,16 +267,19 @@ export function SparkVaultIdentityDialog({
|
|
|
229
267
|
setStep('methods');
|
|
230
268
|
}, [allowedTypes, config, identity, isBusy, sendOtp]);
|
|
231
269
|
|
|
232
|
-
|
|
233
|
-
|
|
270
|
+
// Takes the code as entered rather than the pin state: a code completed by
|
|
271
|
+
// the keystroke that is being handled has not reached that state yet.
|
|
272
|
+
const verifyCode = useCallback(async (code: string) => {
|
|
273
|
+
if (!kindling || code.length !== CODE_LENGTH || verifyingRef.current) return;
|
|
234
274
|
|
|
275
|
+
verifyingRef.current = true;
|
|
235
276
|
const sessionId = sessionRef.current;
|
|
236
277
|
setIsBusy(true);
|
|
237
278
|
setError('');
|
|
238
279
|
try {
|
|
239
280
|
const result = await client.products.identity.verifyOtp({
|
|
240
281
|
kindling,
|
|
241
|
-
pin,
|
|
282
|
+
pin: code,
|
|
242
283
|
recipient: identity,
|
|
243
284
|
});
|
|
244
285
|
await finishWithToken(result, sessionId);
|
|
@@ -252,19 +293,35 @@ export function SparkVaultIdentityDialog({
|
|
|
252
293
|
setExpiresAt(apiError.data.expires_at);
|
|
253
294
|
}
|
|
254
295
|
setPin('');
|
|
296
|
+
refocusCodeRef.current = true;
|
|
255
297
|
reportError(err, 'Verification failed');
|
|
256
298
|
} finally {
|
|
299
|
+
// Only this session's own verification is cleared: a dialog closed
|
|
300
|
+
// meanwhile starts its next opening clear (the open effect).
|
|
257
301
|
if (isActiveSession(sessionRef, sessionId)) {
|
|
302
|
+
verifyingRef.current = false;
|
|
258
303
|
setIsBusy(false);
|
|
259
304
|
}
|
|
260
305
|
}
|
|
261
|
-
}, [client, finishWithToken, identity, kindling,
|
|
306
|
+
}, [client, finishWithToken, identity, kindling, reportError]);
|
|
262
307
|
|
|
263
308
|
const handleResend = useCallback(async () => {
|
|
264
309
|
if (!selectedMethod) return;
|
|
310
|
+
refocusCodeRef.current = true;
|
|
265
311
|
await sendOtp(selectedMethod);
|
|
266
312
|
}, [selectedMethod, sendOtp]);
|
|
267
313
|
|
|
314
|
+
// Back to the identifier step with what was entered, to correct a mistyped
|
|
315
|
+
// address or number: the code sent to it is dropped.
|
|
316
|
+
const handleChangeIdentity = useCallback(() => {
|
|
317
|
+
setStep('identity');
|
|
318
|
+
setPin('');
|
|
319
|
+
setError('');
|
|
320
|
+
setKindling(null);
|
|
321
|
+
setExpiresAt(null);
|
|
322
|
+
setSelectedMethod(null);
|
|
323
|
+
}, []);
|
|
324
|
+
|
|
268
325
|
const handleRetryConfig = useCallback(() => {
|
|
269
326
|
const sessionId = sessionRef.current + 1;
|
|
270
327
|
sessionRef.current = sessionId;
|
|
@@ -381,6 +438,9 @@ export function SparkVaultIdentityDialog({
|
|
|
381
438
|
<TextInput
|
|
382
439
|
value={identity}
|
|
383
440
|
onChangeText={(value) => {
|
|
441
|
+
// The code goes to the address as it was sent, so an edit
|
|
442
|
+
// made while it is being sent is dropped.
|
|
443
|
+
if (isBusy) return;
|
|
384
444
|
setIdentity(value);
|
|
385
445
|
setError('');
|
|
386
446
|
if (allowedTypes.length > 1) {
|
|
@@ -393,7 +453,16 @@ export function SparkVaultIdentityDialog({
|
|
|
393
453
|
autoCorrect={false}
|
|
394
454
|
autoComplete={identityType === 'phone' ? 'tel' : 'email'}
|
|
395
455
|
keyboardType={identityKeyboardType(allowedTypes)}
|
|
396
|
-
|
|
456
|
+
autoFocus
|
|
457
|
+
returnKeyType="go"
|
|
458
|
+
// Go sends without dismissing the keyboard, and the field
|
|
459
|
+
// stays editable through the send (iOS ends the editing of
|
|
460
|
+
// a field made not editable, and the keyboard goes with
|
|
461
|
+
// it): the code field takes the keyboard straight from
|
|
462
|
+
// this one, and an address the send refuses is corrected
|
|
463
|
+
// with the keyboard still up.
|
|
464
|
+
submitBehavior="submit"
|
|
465
|
+
onSubmitEditing={() => void handleIdentitySubmit()}
|
|
397
466
|
style={[
|
|
398
467
|
styles.input,
|
|
399
468
|
{
|
|
@@ -443,7 +512,12 @@ export function SparkVaultIdentityDialog({
|
|
|
443
512
|
</View>
|
|
444
513
|
{error ? <Text style={[styles.error, { color: colors.error }]}>{error}</Text> : null}
|
|
445
514
|
{allowedTypes.length > 0 ? (
|
|
446
|
-
<TextButton
|
|
515
|
+
<TextButton
|
|
516
|
+
label={changeIdentityLabel(identityType)}
|
|
517
|
+
colors={colors}
|
|
518
|
+
onPress={handleChangeIdentity}
|
|
519
|
+
disabled={isBusy}
|
|
520
|
+
/>
|
|
447
521
|
) : null}
|
|
448
522
|
</View>
|
|
449
523
|
)}
|
|
@@ -452,20 +526,30 @@ export function SparkVaultIdentityDialog({
|
|
|
452
526
|
<View style={styles.body}>
|
|
453
527
|
<Text style={[styles.title, { color: colors.text }]}>{otpTitle(selectedMethod)}</Text>
|
|
454
528
|
<Text style={[styles.subtitle, { color: colors.muted }]}>
|
|
455
|
-
Enter the
|
|
529
|
+
Enter the {CODE_LENGTH}-digit code sent to {'\n'}
|
|
456
530
|
<Text style={{ color: colors.text, fontWeight: '700' }}>{identity}</Text>
|
|
457
531
|
</Text>
|
|
458
532
|
<TextInput
|
|
533
|
+
ref={codeInputRef}
|
|
459
534
|
value={pin}
|
|
460
535
|
onChangeText={(value) => {
|
|
461
|
-
|
|
536
|
+
const code = value.replace(/\D/g, '').slice(0, CODE_LENGTH);
|
|
537
|
+
setPin(code);
|
|
462
538
|
setError('');
|
|
539
|
+
// A complete code verifies at once, whether it was typed,
|
|
540
|
+
// pasted or filled in from iOS's code suggestion.
|
|
541
|
+
if (code.length === CODE_LENGTH) void verifyCode(code);
|
|
463
542
|
}}
|
|
464
|
-
|
|
543
|
+
accessibilityLabel="Verification code"
|
|
544
|
+
placeholder={'0'.repeat(CODE_LENGTH)}
|
|
465
545
|
placeholderTextColor={colors.placeholder}
|
|
466
546
|
keyboardType="number-pad"
|
|
467
|
-
|
|
468
|
-
|
|
547
|
+
// iOS offers the code from Messages and Mail above the
|
|
548
|
+
// keyboard (Android's SMS code autofill reads the same hint).
|
|
549
|
+
autoComplete="one-time-code"
|
|
550
|
+
autoFocus
|
|
551
|
+
maxLength={CODE_LENGTH}
|
|
552
|
+
editable={codeEditable}
|
|
469
553
|
style={[
|
|
470
554
|
styles.pinInput,
|
|
471
555
|
{
|
|
@@ -482,11 +566,17 @@ export function SparkVaultIdentityDialog({
|
|
|
482
566
|
<PrimaryButton
|
|
483
567
|
label="Verify"
|
|
484
568
|
colors={colors}
|
|
485
|
-
disabled={pin.length !==
|
|
569
|
+
disabled={pin.length !== CODE_LENGTH || isBusy || countdown === 'Expired'}
|
|
486
570
|
loading={isBusy}
|
|
487
|
-
onPress={
|
|
571
|
+
onPress={() => void verifyCode(pin)}
|
|
488
572
|
/>
|
|
489
573
|
<TextButton label="Resend code" colors={colors} onPress={handleResend} disabled={isBusy} />
|
|
574
|
+
<TextButton
|
|
575
|
+
label={changeIdentityLabel(identityType)}
|
|
576
|
+
colors={colors}
|
|
577
|
+
onPress={handleChangeIdentity}
|
|
578
|
+
disabled={isBusy}
|
|
579
|
+
/>
|
|
490
580
|
</View>
|
|
491
581
|
)}
|
|
492
582
|
|
|
@@ -632,6 +722,10 @@ function identityPlaceholder(allowedTypes: IdentityType[]): string {
|
|
|
632
722
|
return 'name@company.com';
|
|
633
723
|
}
|
|
634
724
|
|
|
725
|
+
function changeIdentityLabel(identityType: IdentityType): string {
|
|
726
|
+
return identityType === 'phone' ? 'Use a different phone number' : 'Use a different email';
|
|
727
|
+
}
|
|
728
|
+
|
|
635
729
|
function otpTitle(method: SupportedMethodId | null): string {
|
|
636
730
|
if (method === 'otp_sms') return 'Check your messages';
|
|
637
731
|
if (method === 'otp_voice') return 'Check your phone';
|