From 02a7b6ea55ee9e38466040ed67a98555956b0fcd Mon Sep 17 00:00:00 2001 From: Pete Matsyburka Date: Mon, 22 Apr 2024 21:15:57 +0300 Subject: [PATCH] do not allow to skip required field with whitespace --- app/javascript/submission_form/form.vue | 6 +++++- app/javascript/submission_form/text_step.vue | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/javascript/submission_form/form.vue b/app/javascript/submission_form/form.vue index 00efa959..d27f3eea 100644 --- a/app/javascript/submission_form/form.vue +++ b/app/javascript/submission_form/form.vue @@ -471,10 +471,14 @@ import i18n from './i18n' const isEmpty = (obj) => { if (obj == null) return true - if (Array.isArray(obj) || typeof obj === 'string') { + if (Array.isArray(obj)) { return obj.length === 0 } + if (typeof obj === 'string') { + return obj.trim().length === 0 + } + if (typeof obj === 'object') { return Object.keys(obj).length === 0 } diff --git a/app/javascript/submission_form/text_step.vue b/app/javascript/submission_form/text_step.vue index ca7d4302..7b7217f2 100644 --- a/app/javascript/submission_form/text_step.vue +++ b/app/javascript/submission_form/text_step.vue @@ -34,7 +34,7 @@ class="base-input !text-2xl w-full" :class="{ '!pr-11 -mr-10': !field.validation?.pattern }" :required="field.required" - :pattern="field.validation?.pattern" + :pattern="field.validation?.pattern || (field.required ? '.*\\S+.*' : '')" :placeholder="`${t('type_here_')}${field.required ? '' : ` (${t('optional')})`}`" type="text" :name="`values[${field.uuid}]`"