From 87f6d85bfaff0764e3bd8bee93d200666823d525 Mon Sep 17 00:00:00 2001 From: Gitanjli Chopra Date: Fri, 18 Oct 2024 01:19:47 +0530 Subject: [PATCH 1/2] chore: profile name validations on edit profile --- .../BusinessMapping/BusinessMappingEntity.res | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/screens/Settings/BusinessMapping/BusinessMappingEntity.res b/src/screens/Settings/BusinessMapping/BusinessMappingEntity.res index 1da14c9df..40a9fb22b 100644 --- a/src/screens/Settings/BusinessMapping/BusinessMappingEntity.res +++ b/src/screens/Settings/BusinessMapping/BusinessMappingEntity.res @@ -14,6 +14,30 @@ module ProfileActions = { ) let initialValues = [("profile_name", defaultProfileName->JSON.Encode.string)]->Dict.fromArray + + let validateForm = (values: JSON.t) => { + open LogicUtils + let errors = Dict.make() + let profileName = values->getDictFromJsonObject->getString("profile_name", "")->String.trim + let regexForProfileName = "^([a-z]|[A-Z]|[0-9]|_|\\s)+$" + + let errorMessage = if profileName->isEmptyString { + "Profile name cannot be empty" + } else if profileName->String.length > 64 { + "Profile name cannot exceed 64 characters" + } else if !RegExp.test(RegExp.fromString(regexForProfileName), profileName) { + "Profile name should not contain special characters" + } else { + "" + } + + if errorMessage->isNonEmptyString { + Dict.set(errors, "profile_name", errorMessage->JSON.Encode.string) + } + + errors->JSON.Encode.object + } + let onSubmit = async (values, _) => { try { let url = getURL(~entityName=BUSINESS_PROFILE, ~methodType=Post, ~id=Some(profileId)) @@ -72,7 +96,7 @@ module ProfileActions = { showModal setShowModal modalClass="w-1/4 m-auto"> -
JSON.Encode.object} onSubmit> + JSON.Encode.object} onSubmit validate={validateForm}>
Date: Fri, 18 Oct 2024 01:24:29 +0530 Subject: [PATCH 2/2] chore: format --- src/screens/Settings/BusinessMapping/BusinessMappingEntity.res | 1 - 1 file changed, 1 deletion(-) diff --git a/src/screens/Settings/BusinessMapping/BusinessMappingEntity.res b/src/screens/Settings/BusinessMapping/BusinessMappingEntity.res index 40a9fb22b..d5e13242e 100644 --- a/src/screens/Settings/BusinessMapping/BusinessMappingEntity.res +++ b/src/screens/Settings/BusinessMapping/BusinessMappingEntity.res @@ -14,7 +14,6 @@ module ProfileActions = { ) let initialValues = [("profile_name", defaultProfileName->JSON.Encode.string)]->Dict.fromArray - let validateForm = (values: JSON.t) => { open LogicUtils let errors = Dict.make()