From 0b801ccbadb6672164af8d280408510b7401d60a Mon Sep 17 00:00:00 2001 From: Antoine du Hamel Date: Fri, 20 Aug 2021 14:47:31 +0200 Subject: [PATCH] @uppy/core: reject empty string as valid value for required meta fields (#3119) --- packages/@uppy/core/src/index.js | 4 ++-- website/src/docs/dashboard.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/@uppy/core/src/index.js b/packages/@uppy/core/src/index.js index c59f854af..1747a3a39 100644 --- a/packages/@uppy/core/src/index.js +++ b/packages/@uppy/core/src/index.js @@ -555,14 +555,14 @@ class Uppy { */ #checkRequiredMetaFields (files) { const { requiredMetaFields } = this.opts.restrictions - const { hasOwnProperty } = Object.prototype.hasOwnProperty + const { hasOwnProperty } = Object.prototype const errors = [] const fileIDs = Object.keys(files) for (let i = 0; i < fileIDs.length; i++) { const file = this.getFile(fileIDs[i]) for (let i = 0; i < requiredMetaFields.length; i++) { - if (!hasOwnProperty.call(file.meta, requiredMetaFields[i])) { + if (!hasOwnProperty.call(file.meta, requiredMetaFields[i]) || file.meta[requiredMetaFields[i]] === '') { const err = new RestrictionError(`${this.i18n('missingRequiredMetaFieldOnFile', { fileName: file.name })}`) errors.push(err) this.#showOrLogErrorAndThrow(err, { file, showInformer: false, throwErr: false }) diff --git a/website/src/docs/dashboard.md b/website/src/docs/dashboard.md index 174bab5bb..3ab60486c 100644 --- a/website/src/docs/dashboard.md +++ b/website/src/docs/dashboard.md @@ -249,7 +249,7 @@ uppy.use(Dashboard, { id: 'public', name: 'Public', render ({ value, onChange, required, form }, h) { - return h('input', { type: 'checkbox', required, form, onChange: (ev) => onChange(ev.target.checked ? 'on' : 'off'), defaultChecked: value === 'on' }) + return h('input', { type: 'checkbox', required, form, onChange: (ev) => onChange(ev.target.checked ? 'on' : ''), defaultChecked: value === 'on' }) }, }, ], @@ -272,7 +272,7 @@ uppy.use(Dashboard, { render: ({ value, onChange, required, form }, h) => { return h('input', { type: 'checkbox', - onChange: (ev) => onChange(ev.target.checked ? 'on' : 'off'), + onChange: (ev) => onChange(ev.target.checked ? 'on' : ''), defaultChecked: value === 'on', required, form,