import { App, Button, Card, Form, Input, Typography, type InputRef } from 'antd'; import { useEffect, useRef, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { useAppDispatch } from '@/utils/hooks'; import { loginSuccess } from '@/features/auth/authSlice'; import { authService } from '@/features/auth/authService'; import { colors } from '@/design/tokens/colors'; import { spacing } from '@/design/tokens/spacing'; const { Title, Paragraph } = Typography; interface VerifyOtpFormValues { otp: string; } const VerifyOtp = () => { const navigate = useNavigate(); const dispatch = useAppDispatch(); const [phoneNumber] = useState(() => localStorage.getItem('pending_phone_number') ?? ''); const [form] = Form.useForm(); const otpInputRef = useRef(null); const { message } = App.useApp(); useEffect(() => { const timeoutId = window.setTimeout(() => { otpInputRef.current?.focus(); }, 100); return () => window.clearTimeout(timeoutId); }, []); const onFinish = async (values: VerifyOtpFormValues) => { try { const response = await authService.verifyOtp(phoneNumber, values.otp); dispatch(loginSuccess(response)); localStorage.removeItem('pending_phone_number'); message.success('ورود با موفقیت انجام شد'); navigate('/'); } catch { message.error('کد تایید نادرست است'); } }; return (
تایید کد یکبار مصرف کد تایید: 77501
); }; export default VerifyOtp;