feat: auto focus for otp added

This commit is contained in:
Afra ‌ 2026-08-01 13:58:29 +03:30
parent cfc05083fd
commit 7e582f1a40

View file

@ -1,5 +1,5 @@
import { Button, Card, Form, Input, Typography, message } from 'antd'; import { Button, Card, Form, Input, Typography, message } from 'antd';
import { useEffect, useState } from 'react'; import { useEffect, useRef, useState } from 'react';
import { useNavigate } from 'react-router-dom'; import { useNavigate } from 'react-router-dom';
import { useAppDispatch } from '../../utils/hooks'; import { useAppDispatch } from '../../utils/hooks';
import { loginSuccess } from '../../features/auth/authSlice'; import { loginSuccess } from '../../features/auth/authSlice';
@ -18,12 +18,19 @@ const VerifyOtp = () => {
const dispatch = useAppDispatch(); const dispatch = useAppDispatch();
const [phoneNumber, setPhoneNumber] = useState(''); const [phoneNumber, setPhoneNumber] = useState('');
const [form] = Form.useForm<VerifyOtpFormValues>(); const [form] = Form.useForm<VerifyOtpFormValues>();
const otpInputRef = useRef<any>(null);
useEffect(() => { useEffect(() => {
const storedPhoneNumber = localStorage.getItem('pending_phone_number'); const storedPhoneNumber = localStorage.getItem('pending_phone_number');
if (storedPhoneNumber) { if (storedPhoneNumber) {
setPhoneNumber(storedPhoneNumber); setPhoneNumber(storedPhoneNumber);
} }
const timeoutId = window.setTimeout(() => {
otpInputRef.current?.focus();
}, 100);
return () => window.clearTimeout(timeoutId);
}, []); }, []);
const onFinish = async (values: VerifyOtpFormValues) => { const onFinish = async (values: VerifyOtpFormValues) => {
@ -54,7 +61,7 @@ const VerifyOtp = () => {
name="otp" name="otp"
rules={[{ required: true, message: 'کد تایید الزامی است' }]} rules={[{ required: true, message: 'کد تایید الزامی است' }]}
> >
<Input placeholder="77501" size="large" maxLength={5} /> <Input ref={otpInputRef} placeholder="77501" size="large" maxLength={5} />
</Form.Item> </Form.Item>
<Form.Item> <Form.Item>