@sparkvault/sdk-mobile 7.1.6 → 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 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
 
@@ -2,8 +2,9 @@ export function isSparkVaultOwnedHostname(hostname: any): boolean;
2
2
  /**
3
3
  * Whether a domain is SparkVault's, so no organization may claim it as its
4
4
  * own: every host the platform owns, and the help-desk domain with its whole
5
- * subtree, whose hosts belong to SparkVault's tenants and to its custom-domain
6
- * CNAME target without any of them being trusted as a platform host.
5
+ * subtree. The help-desk domain is every custom help-desk domain's CNAME
6
+ * target and the hosts under it are SparkVault's tenants', yet none of them
7
+ * is trusted as a platform host.
7
8
  */
8
9
  export function isSparkVaultReservedDomain(hostname: any): boolean;
9
10
  export function sparkVaultPlatformSvOrigins(): string[];
@@ -35,8 +36,8 @@ export const SPARKVAULT_LINKS_HOST: "x.sv";
35
36
  export const SPARKVAULT_FILES_HOST: "files.sv";
36
37
  /**
37
38
  * The help-desk domain: each organization's help desk lives at a host under
38
- * it, and every custom help-desk domain points its CNAME at a name in it. The
39
- * whole subtree is reserved — no organization claims a name in it as its own
39
+ * it, and every custom help-desk domain points its CNAME at it. The whole
40
+ * subtree is reserved — no organization claims a name in it as its own
40
41
  * domain — but none of its hosts is owned: a tenant's help-desk host is never
41
42
  * trusted the way a platform host is (isSparkVaultOwnedHostname).
42
43
  */
@@ -28,8 +28,8 @@ export const SPARKVAULT_LINKS_HOST = 'x.sv';
28
28
  export const SPARKVAULT_FILES_HOST = 'files.sv';
29
29
  /**
30
30
  * The help-desk domain: each organization's help desk lives at a host under
31
- * it, and every custom help-desk domain points its CNAME at a name in it. The
32
- * whole subtree is reserved — no organization claims a name in it as its own
31
+ * it, and every custom help-desk domain points its CNAME at it. The whole
32
+ * subtree is reserved — no organization claims a name in it as its own
33
33
  * domain — but none of its hosts is owned: a tenant's help-desk host is never
34
34
  * trusted the way a platform host is (isSparkVaultOwnedHostname).
35
35
  */
@@ -88,8 +88,9 @@ export function isSparkVaultOwnedHostname(hostname) {
88
88
  /**
89
89
  * Whether a domain is SparkVault's, so no organization may claim it as its
90
90
  * own: every host the platform owns, and the help-desk domain with its whole
91
- * subtree, whose hosts belong to SparkVault's tenants and to its custom-domain
92
- * CNAME target without any of them being trusted as a platform host.
91
+ * subtree. The help-desk domain is every custom help-desk domain's CNAME
92
+ * target and the hosts under it are SparkVault's tenants', yet none of them
93
+ * is trusted as a platform host.
93
94
  */
94
95
  export function isSparkVaultReservedDomain(hostname) {
95
96
  return isSparkVaultOwnedHostname(hostname) || isSparkVaultHelpDeskDomainOrSubdomain(hostname);
@@ -1 +1 @@
1
- {"version":3,"file":"platform-domains.js","sourceRoot":"","sources":["../../src/app-sdk/platform-domains.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"platform-domains.js","sourceRoot":"","sources":["../../src/app-sdk/platform-domains.js"],"names":[],"mappings":"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"}
@@ -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
- const handleVerifyOtp = useCallback(async () => {
172
- if (!kindling || pin.length !== 6)
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, pin, reportError]);
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), editable: !isBusy, style: [
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: "Use a different identity", colors: colors, onPress: () => setStep('identity') })) : 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 6-digit code sent to ", '\n', _jsx(Text, { style: { color: colors.text, fontWeight: '700' }, children: identity })] }), _jsx(TextInput, { value: pin, onChangeText: (value) => {
282
- setPin(value.replace(/\D/g, '').slice(0, 6));
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
- }, placeholder: "000000", placeholderTextColor: colors.placeholder, keyboardType: "number-pad", maxLength: 6, editable: !isBusy && countdown !== 'Expired', style: [
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 !== 6 || isBusy || countdown === 'Expired', loading: isBusy, onPress: handleVerifyOtp }), _jsx(TextButton, { label: "Resend code", colors: colors, onPress: handleResend, 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 })] }))] }) }) }) }));
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sparkvault/sdk-mobile",
3
- "version": "7.1.6",
3
+ "version": "7.1.8",
4
4
  "description": "Mobile SDK for SparkVault Identity, vault, folder, and ingot workflows",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -35,8 +35,8 @@ export const SPARKVAULT_FILES_HOST = 'files.sv';
35
35
 
36
36
  /**
37
37
  * The help-desk domain: each organization's help desk lives at a host under
38
- * it, and every custom help-desk domain points its CNAME at a name in it. The
39
- * whole subtree is reserved — no organization claims a name in it as its own
38
+ * it, and every custom help-desk domain points its CNAME at it. The whole
39
+ * subtree is reserved — no organization claims a name in it as its own
40
40
  * domain — but none of its hosts is owned: a tenant's help-desk host is never
41
41
  * trusted the way a platform host is (isSparkVaultOwnedHostname).
42
42
  */
@@ -106,8 +106,9 @@ export function isSparkVaultOwnedHostname(hostname) {
106
106
  /**
107
107
  * Whether a domain is SparkVault's, so no organization may claim it as its
108
108
  * own: every host the platform owns, and the help-desk domain with its whole
109
- * subtree, whose hosts belong to SparkVault's tenants and to its custom-domain
110
- * CNAME target without any of them being trusted as a platform host.
109
+ * subtree. The help-desk domain is every custom help-desk domain's CNAME
110
+ * target and the hosts under it are SparkVault's tenants', yet none of them
111
+ * is trusted as a platform host.
111
112
  */
112
113
  export function isSparkVaultReservedDomain(hostname) {
113
114
  return isSparkVaultOwnedHostname(hostname) || isSparkVaultHelpDeskDomainOrSubdomain(hostname);
@@ -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
- const handleVerifyOtp = useCallback(async () => {
233
- if (!kindling || pin.length !== 6) return;
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, pin, reportError]);
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
- editable={!isBusy}
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 label="Use a different identity" colors={colors} onPress={() => setStep('identity')} />
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 6-digit code sent to {'\n'}
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
- setPin(value.replace(/\D/g, '').slice(0, 6));
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
- placeholder="000000"
543
+ accessibilityLabel="Verification code"
544
+ placeholder={'0'.repeat(CODE_LENGTH)}
465
545
  placeholderTextColor={colors.placeholder}
466
546
  keyboardType="number-pad"
467
- maxLength={6}
468
- editable={!isBusy && countdown !== 'Expired'}
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 !== 6 || isBusy || countdown === 'Expired'}
569
+ disabled={pin.length !== CODE_LENGTH || isBusy || countdown === 'Expired'}
486
570
  loading={isBusy}
487
- onPress={handleVerifyOtp}
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';