From 4c3e8994e27f819ae3195d363412610f12be70d2 Mon Sep 17 00:00:00 2001 From: Ilya Sokov Date: Wed, 13 Apr 2022 03:40:40 +0300 Subject: [PATCH] feat: show more information about errors --- src/v2/js/apps/YDSApplicationForm.jsx | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/v2/js/apps/YDSApplicationForm.jsx b/src/v2/js/apps/YDSApplicationForm.jsx index 9139243e..61aad308 100644 --- a/src/v2/js/apps/YDSApplicationForm.jsx +++ b/src/v2/js/apps/YDSApplicationForm.jsx @@ -17,10 +17,7 @@ import { Tooltip } from 'components'; import { optionStrType } from 'types/props'; -import { - showErrorNotification, - showNotification -} from 'utils'; +import { showErrorNotification, showNotification } from 'utils'; // TODO: потестить isPending. Есть какой-то devtools для react-async @@ -54,7 +51,8 @@ const submitForm = async ( }); if (!response.ok) { if (response.status === 400) { - const data = response.json(); + const data = await response.json(); + console.log(data); let msg = '
Анкета не была сохранена
'; if ( Object.keys(data).length === 1 && @@ -62,16 +60,19 @@ const submitForm = async ( ) { msg += data['non_field_errors']; showErrorNotification(msg); + console.log(`Non field errors: ${data}`); } else { - msg += 'Одно или более полей пропущены или заполнены некорректно.'; - showNotification(msg, { type: 'error', timeout: 3000 }); + msg += 'Одно или более полей пропущены или заполнены некорректно:'; + msg += `
${JSON.stringify(data)}`; + showNotification(msg, { type: 'error' }); } } else if (response.status === 403) { let msg = '
Анкета не была сохранена
Приемная кампания окончена.'; showErrorNotification(msg); } else { showErrorNotification( - 'Что-то пошло не так. Пожалуйста, обратитесь на почту, указанную вниз анкеты.' + `Что-то пошло не так: код ошибки ${response.status}.
+ Пожалуйста, обратитесь на почту, указанную внизу анкеты.` ); } } else { @@ -152,7 +153,7 @@ function YDSApplicationForm({ setCities(data.map(({ id, name }) => ({ value: id, label: name }))); }) .catch(errors => { - showErrorNotification(`Что-то пошло не так, пожалуйста, обратитесь на почту, + showErrorNotification(`Не удалось загрузить список городов, пожалуйста, обратитесь на почту, указанную внизу анкеты.
${errors.toString()}`); console.error(errors); }); @@ -207,7 +208,7 @@ function YDSApplicationForm({ ); }) .catch(errors => { - showErrorNotification(`Что-то пошло не так, пожалуйста, обратитесь на почту, + showErrorNotification(`Не удалось загрузить список университетов, пожалуйста, обратитесь на почту, указанную внизу анкеты.
${errors.toString()}`); console.error(errors); }); @@ -232,9 +233,8 @@ function YDSApplicationForm({ rules.course = value === 'yes' ? { required: msgRequired } : {}; register('course', rules.course); } - if (name === 'campaign' && value === mskStrCampaignId) { - const required = value === 'yes' ? msgRequired : false; - console.log(value, required); + if (name === 'campaign') { + const required = value === mskStrCampaignId ? msgRequired : false; rules.shadPlusRash.required = required; rules.newTrack.required = required; }