From aead730d2876b048acad14ab89ec18c081caca86 Mon Sep 17 00:00:00 2001 From: Mohsen Date: Fri, 5 Apr 2024 08:28:08 +0300 Subject: [PATCH] [#19406] fix: add min char validation for nickname (#19517) --- src/status_im/common/validation/profile.cljs | 1 + .../contexts/profile/contact/add_nickname/view.cljs | 8 ++++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/status_im/common/validation/profile.cljs b/src/status_im/common/validation/profile.cljs index fd07526150..44c4e8e626 100644 --- a/src/status_im/common/validation/profile.cljs +++ b/src/status_im/common/validation/profile.cljs @@ -55,4 +55,5 @@ {:check (i18n/label :t/emojis)}) (validators/has-special-characters? s) (i18n/label :t/are-not-allowed {:check (i18n/label :t/special-characters)}) + (name-too-short? s) (i18n/label :t/minimum-characters {:min-chars min-length}) (name-too-long? s) (i18n/label :t/nickname-is-too-long))) diff --git a/src/status_im/contexts/profile/contact/add_nickname/view.cljs b/src/status_im/contexts/profile/contact/add_nickname/view.cljs index a59d1dc846..5a5732c8e8 100644 --- a/src/status_im/contexts/profile/contact/add_nickname/view.cljs +++ b/src/status_im/contexts/profile/contact/add_nickname/view.cljs @@ -19,16 +19,19 @@ profile-picture (profile.utils/photo profile) [unsaved-nickname set-unsaved-nickname] (rn/use-state nickname) [error-msg set-error-msg] (rn/use-state nil) + [typing? set-typing?] (rn/use-state false) has-nickname? (rn/use-memo (fn [] (not (string/blank? nickname))) [nickname]) validate-nickname (rn/use-callback (debounce/debounce (fn [name] (set-error-msg - (profile-validator/validation-nickname name))) + (profile-validator/validation-nickname name)) + (set-typing? false)) 300)) on-cancel (rn/use-callback #(rf/dispatch [:hide-bottom-sheet])) on-nickname-change (rn/use-callback (fn [text] + (set-typing? true) (set-unsaved-nickname text) (validate-nickname text))) on-nickname-submit (rn/use-callback @@ -74,7 +77,8 @@ [quo/bottom-actions {:actions :two-actions :button-one-label (i18n/label (if has-nickname? :t/update-nickname-title :t/add-nickname-title)) - :button-one-props {:disabled? (or (string/blank? unsaved-nickname) + :button-one-props {:disabled? (or typing? + (string/blank? unsaved-nickname) (not (string/blank? error-msg))) :customization-color customization-color :on-press on-nickname-submit}