Skip to content

Commit 170e397

Browse files
authored
feat: verification autofill (#2342)
1 parent e26a094 commit 170e397

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

packages/keychain/src/components/purchasenew/verification/index.tsx

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,8 @@ interface VerificationStepViewProps {
4343
isLoading: boolean;
4444
type: string;
4545
error: string | null;
46+
autoComplete?: string;
47+
name?: string;
4648
}
4749

4850
const VerificationStepView = ({
@@ -56,6 +58,8 @@ const VerificationStepView = ({
5658
isLoading,
5759
type,
5860
error,
61+
autoComplete,
62+
name,
5963
}: VerificationStepViewProps) => (
6064
<>
6165
<HeaderInner title={title} icon={icon} variant="compressed" />
@@ -65,6 +69,8 @@ const VerificationStepView = ({
6569
{label}
6670
</label>
6771
<Input
72+
name={name}
73+
autoComplete={autoComplete}
6874
placeholder={placeholder}
6975
value={value}
7076
onChange={(e: React.ChangeEvent<HTMLInputElement>) =>
@@ -374,6 +380,8 @@ export function Verification() {
374380
onContinue={handleSendEmail}
375381
isLoading={sendEmailMutation.isLoading}
376382
type="email"
383+
autoComplete="email"
384+
name="email"
377385
error={error}
378386
/>
379387
);
@@ -407,6 +415,8 @@ export function Verification() {
407415
onContinue={handleSendPhone}
408416
isLoading={sendPhoneMutation.isLoading}
409417
type="tel"
418+
autoComplete="tel"
419+
name="phone"
410420
error={error}
411421
/>
412422
);

packages/keychain/src/context/starterpack/onchain-purchase.tsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -255,6 +255,18 @@ export const OnchainPurchaseProvider = ({
255255
setDisplayError(undefined);
256256
}, [selectedToken, selectedWallet, setDisplayError]);
257257

258+
// Auto-select USDC when Apple Pay is selected
259+
useEffect(() => {
260+
if (isApplePaySelected && availableTokens.length > 0) {
261+
const usdcToken = availableTokens.find(
262+
(token) => token.symbol === "USDC",
263+
);
264+
if (usdcToken && selectedToken?.address !== usdcToken.address) {
265+
setSelectedToken(usdcToken);
266+
}
267+
}
268+
}, [isApplePaySelected, availableTokens, selectedToken, setSelectedToken]);
269+
258270
// Wrap onSendDeposit to clear errors before sending
259271
const onSendDeposit = useCallback(async () => {
260272
setDisplayError(undefined);
@@ -475,7 +487,7 @@ export const OnchainPurchaseProvider = ({
475487
convertedPrice,
476488
swapQuote,
477489
isFetchingConversion,
478-
isTokenSelectionLocked,
490+
isTokenSelectionLocked: isTokenSelectionLocked || isApplePaySelected,
479491
conversionError,
480492
usdAmount,
481493
layerswapFees,

0 commit comments

Comments
 (0)