From 39f4bdb3515dfbccefb01e21fd94ef4465c25604 Mon Sep 17 00:00:00 2001 From: Mikhail Mogilnikov Date: Wed, 10 Jan 2024 20:26:02 +0300 Subject: [PATCH] feat: new form feedback "empty" --- src/scripts/controller.js | 5 ++++- src/scripts/view.js | 3 +++ src/utils/locales/ru.js | 1 + src/utils/strings.js | 1 + 4 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/scripts/controller.js b/src/scripts/controller.js index acfdd5e..2d1c9b0 100644 --- a/src/scripts/controller.js +++ b/src/scripts/controller.js @@ -74,7 +74,10 @@ export default (state, watchedState) => { const normalizedValue = normalizeUrl(domElements.form.input.value); - if (state.feedList.includes(normalizedValue)) { + if (normalizedValue.length === 0) { + watchedState.formState = strings.formStates.invalid; + watchedState.feedback = strings.feedback.empty; + } else if (state.feedList.includes(normalizedValue)) { watchedState.formState = strings.formStates.invalid; watchedState.feedback = strings.feedback.exists; } else { diff --git a/src/scripts/view.js b/src/scripts/view.js index 2e85355..d5ceb80 100644 --- a/src/scripts/view.js +++ b/src/scripts/view.js @@ -21,6 +21,9 @@ const renderFormState = (value) => { const renderFeedback = (value, locales) => { switch (value) { + case 'empty': + domElements.form.feedback.textContent = locales.t('feedback.empty'); + break; case 'invalidValidation': domElements.form.feedback.textContent = locales.t( 'feedback.invalidValidation', diff --git a/src/utils/locales/ru.js b/src/utils/locales/ru.js index 4edb4ac..247ed6d 100644 --- a/src/utils/locales/ru.js +++ b/src/utils/locales/ru.js @@ -1,6 +1,7 @@ export default { translation: { feedback: { + empty: 'Не должно быть пустым', invalidValidation: 'Ссылка должна быть валидным URL', invalidRss: 'Ресурс не содержит валидный RSS', networkError: 'Ошибка сети', diff --git a/src/utils/strings.js b/src/utils/strings.js index 7675621..81bad0b 100644 --- a/src/utils/strings.js +++ b/src/utils/strings.js @@ -6,6 +6,7 @@ export default { valid: 'valid', }, feedback: { + empty: 'empty', invalidValidation: 'invalidValidation', invalidRss: 'invalidRss', networkError: 'networkError',