From a20354fbe8405f3836e73555fbff8159325542c9 Mon Sep 17 00:00:00 2001 From: Noa <144594801+NoaVel@users.noreply.github.com> Date: Wed, 29 Apr 2026 15:40:12 +0300 Subject: [PATCH 1/2] refactor(upload): separate hashtag format/length validation --- js/check-hashtag-validity.js | 6 +++++- js/upload-photo-form.js | 12 ++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/js/check-hashtag-validity.js b/js/check-hashtag-validity.js index 5ebbc31..c4af41c 100644 --- a/js/check-hashtag-validity.js +++ b/js/check-hashtag-validity.js @@ -15,7 +15,11 @@ const hasValidHashtagLength = (value) => normalizeHashtags(value).every((hashtag) => hashtag.length <= MAX_HASHTAG_LENGTH); const hasValidHashtagFormat = (value) => - normalizeHashtags(value).every((hashtag) => HASHTAG_REGEXP.test(hashtag)); + normalizeHashtags(value).every((hashtag) => + hashtag.startsWith('#') && + hashtag.length > 1 && + HASHTAG_REGEXP.test(hashtag) + ); const hasUniqueHashtags = (value) => { const hashtags = normalizeHashtags(value); diff --git a/js/upload-photo-form.js b/js/upload-photo-form.js index 2f97ffb..516098c 100644 --- a/js/upload-photo-form.js +++ b/js/upload-photo-form.js @@ -78,20 +78,20 @@ const onUploadFormSubmit = (evt) => { pristine.addValidator( hashtagsInputNode, - hasValidHashtagCount, - 'Нельзя указать больше пяти хэштегов' + hasValidHashtagFormat, + 'Хэштег должен начинаться с # и содержать только буквы и цифры' ); pristine.addValidator( hashtagsInputNode, - hasValidHashtagLength, - 'Максимальная длина одного хэштега — 20 символов' + hasValidHashtagCount, + 'Нельзя указать больше пяти хэштегов' ); pristine.addValidator( hashtagsInputNode, - hasValidHashtagFormat, - 'Хэштег должен начинаться с # и содержать только буквы и цифры' + hasValidHashtagLength, + 'Максимальная длина одного хэштега — 20 символов' ); pristine.addValidator( From b0191f80e62328bda96be218ca40962e5373e3a1 Mon Sep 17 00:00:00 2001 From: Noa <144594801+NoaVel@users.noreply.github.com> Date: Wed, 29 Apr 2026 16:46:05 +0300 Subject: [PATCH 2/2] feat(upload): add image scale controls and effects slider --- index.html | 4 +- js/image-editor.js | 171 ++++++++++++++++++++++++++++++++++++++++ js/main.js | 2 + js/upload-photo-form.js | 3 + 4 files changed, 179 insertions(+), 1 deletion(-) create mode 100644 js/image-editor.js diff --git a/index.html b/index.html index 88f6628..657bd06 100644 --- a/index.html +++ b/index.html @@ -5,6 +5,7 @@ +