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

پروژه اولیه
پروژه اولیه را از این لینک دانلود کنید. ساختار فایلهای این پروژه به صورت زیر است.
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را ارسال کنید.
ارسال پاسخ برای این سؤال