در این سوال شما باید مراحل مختلف عملیات کارت به کارت را پیادهسازی کنید تا خروجی نهایی مانند تصویر زیر شود:

پروژه اولیه
پروژه اولیه را از این لینک دانلود کنید. ساختار فایلهای این پروژه به صورت زیر است.
pay
├── src
│   ├── components
│   │   ├── BackButton.jsx
│   │   ├── FactorRow.jsx
│   │   └── Input.jsx
│   ├── constants
│   │   └── StepValriants.js
│   ├── features
│   │   ├── ReportTransport.jsx
│   │   ├── SourceCredit.jsx
│   │   └── TargetCredit.jsx
│   ├── layouts
│   │   └── TransportLayout.jsx
│   ├── App.jsx
│   ├── index.css
│   └── index.js
├── package-lock.json
└── package.json
جزئیات
برنامه را طوری کامل کنید که صفحه قبل و بعد به درستی و مشابه تصویر بالا کار کند و فرمها به درستی نمایش داده شوند.
- 
تابع
onNextStepبرای رفتن به صفحه بعد و تابعonPrevStepبرای رفتن به صفحه قبل را کامل کنید. - 
استیت همهی اینپوتها باید با استفاده از تابع
handleStepValueتغییر کند، این تابع به این شکل عمل میکند که سه ورودیstep،name،valueرا دریافت میکند، سپس با توجه بهstepجاری مقادیر داخلstepsFormرا برای مرحله و فیلدهای مورد نظر آپدیت میکند. - 
تابع
handleStepValueبا استفاده از ورودی خود، استیت فرم را برای مرحله و فیلد مورد نظر را آپدیت میکند. - 
تابع
getStepValueبا توجه به مقدار ورودیstep، اطلاعات مربوط به صفحات را با توجه به مقادیرstepsFormبرمیگرداند. - 
تابع
registerInputرا طوری کامل کنید که براساس ورودیnameو مرحلهای که در آن صدا زده میشود، پراپرتیهایonChangeوvalueدرست را برای اینپوتها بسازد. - 
بعد از کلیک شدن روی دکمه «رمز پیامکی جدید» مقدار
timerبرابر ۱۲۰ قرار میگیرد که باید در هر ثانیه از مقدار آن یکی کم شود و وقتی به صفر رسید، مقدارnullنمایش داده شود. 
نکات
- فقط مجاز به تغییر فایل 
App.jsxهستید. - در نهایت صرفا فایل 
App.jsxرا ارسال کنید. 
ارسال پاسخ برای این سؤال