Sobes.tech
Middle

#React тіркелу формасы 1. StateProvider қалай жұмыс істейтінін түсіндіріп беріңіз, ойыңызды интервьюермен бөлісіңіз. 2. /src/api/mock-ты қарап шығыңыз, ол қалай жұмыс істейтінін түсіндіріңіз. 3. SubmitButton түймесінің түсін тексеріп, түзетіңіз. 4. Signup компонентінде клиенттік форма валидациясын жүзеге асырыңыз. (\*) 9-шы тапсырманы ескеріңіз. Ережелер: - Пайдаланушы аты, Электронды пошта, Құпия сөз, Қайталау құпия сөзі өрістері кемінде 6 таңбадан тұруы керек; - Құпия сөз Қайталау құпия сөзімен сәйкес болуы керек; - Валидация "SignUp" батырмасын басқан кезде орындалуы керек; - Жарамсыз мәндері бар өрістер белгіленуі керек (error және helperText props); 6. API жауапта қате болуы мүмкін, оны тиісті өріске жақын пайдаланушыға көрсету керек. 7. Пайдаланушы аты компоненті сәтті жіберілгеннен кейін жаңа пайдаланушы атын көрсететініне көз жеткізіңіз. 8. Жаңа SignupSuccess компонентін жүзеге асырыңыз. Ол тіркелу формасының орнына көрсетілуі керек. 9. Тиісті өрістер үшін серверлік валидацияны жүзеге асырыңыз. --- mock.ts-тен код: ```typescript const fakeResponse = (userName) => ({ code: 200, user: { id: 42, userName, }, }); let a = 0; const api = { '/signup': function (userName: string, email: string, password: string) { a++; return new Promise((resolve, reject) => { setTimeout(() => { if (a % 2 === 0) { return resolve(fakeResponse(userName)); } else { return reject( new Error( `Пайдаланушы аты "${userName}" алынып тасталды. Басқа біреуін көріңіз.` ) ); } }, 500); }); }, }; export default api; ```

sobes.tech AI

AI-дан жауап

  1. StateProvider — бұл компонент, ол балалар компоненттеріне күй контекстін қамтамасыз етеді. Ол React Context API-ін пайдаланады, күй мен оны өзгерту әдістерін сақтау және беру үшін, проп-дриллингті болдырмайды және күй басқаруды орталықтандырады.

  2. /src/api/mock ішінде имитациялық API жүзеге асырылған, ол асинхронды сервер сұрауын имитациялайды. /signup функциясы пайдаланушы деректерін қабылдайды және 500 мс ішінде сәтті жауаппен немесе қате қайтарумен уәде береді, бұл пайдаланушы атының already taken (қолданыста) жағдайын имитациялайды (шақырулар бойынша ауысады).

  3. SubmitButton түстің дұрыс болуын түзету үшін, компонент стильдерін тексеріп, түстің дизайнға сәйкес екеніне көз жеткізіңіз. Мысалы, егер түс проп арқылы берілсе, қажетті мәнге түзетіңіз.

  4. Signup компонентінде "SignUp" батырмасын басқанда валидация үшін:

  • Username, Email, Password, Repeat Password өрістерінің ұзындығы >= 6
  • Password пен Repeat Password сәйкес болуы керек

Қателерді error және helperText проптарымен белгілеп көрсетіңіз.

Валидация мысалы:

const validate = () => {
  const errors = {};
  if (username.length < 6) errors.username = 'Минимум 6 символ';
  if (email.length < 6) errors.email = 'Минимум 6 символ';
  if (password.length < 6) errors.password = 'Минимум 6 символ';
  if (repeatPassword.length < 6) errors.repeatPassword = 'Минимум 6 символ';
  if (password !== repeatPassword) errors.repeatPassword = 'Парольдер сәйкес емес';
  setErrors(errors);
  return Object.keys(errors).length === 0;
};

const handleSubmit = () => {
  if (!validate()) return;
  // деректерді жіберу
};
  1. Егер API қате қайтарса, оны тиісті өріске қосуды көрсету керек, мысалы, пайдаланушы аты бос болса — Username өрісінде қате көрсету.

  2. Сәтті тіркелгеннен кейін, UserName компоненті жаңартылып, API-ден алынған жаңа пайдаланушы атын көрсетеді.

  3. Тіркелгеннен кейін, форма орнына SignupSuccess компоненті көрсетіледі, ол сәтті аяқталғанын хабарлайды.

  4. Серверлік валидация мок API-де жүзеге асырылған: әр екінші сұрауда пайдаланушы аты бос болады деп қате қайтарылады. Клиент бұл қатені дұрыс өңдеп, пайдаланушыға көрсетуі керек.

Осылайша, тапсырма күймен жұмыс істеу, валидация, қате өңдеу және әртүрлі UI күйін көрсету жұмыстарын қамтиды.