From 69ee36afb4bc597edb2131e50576b9941abd8662 Mon Sep 17 00:00:00 2001 From: Razvan Stoenescu Date: Fri, 3 May 2024 19:41:59 +0300 Subject: [PATCH] fix(QDate/QTime): harden the modelValue validation --- ui/src/components/date/QDate.js | 6 ++++++ ui/src/components/date/use-datetime.js | 4 +--- ui/src/components/time/QTime.js | 6 ++++++ 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/ui/src/components/date/QDate.js b/ui/src/components/date/QDate.js index cb2c13af8c0..483d8ee8ccd 100644 --- a/ui/src/components/date/QDate.js +++ b/ui/src/components/date/QDate.js @@ -32,6 +32,11 @@ export default createComponent({ ...useFormProps, ...useDarkProps, + modelValue: { + required: true, + validator: val => typeof val === 'string' || Array.isArray(val) === true || Object(val) === val || val === null + }, + multiple: Boolean, range: Boolean, @@ -39,6 +44,7 @@ export default createComponent({ subtitle: String, mask: { + ...useDatetimeProps.mask, // this mask is forced // when using persian calendar default: 'YYYY/MM/DD' diff --git a/ui/src/components/date/use-datetime.js b/ui/src/components/date/use-datetime.js index 7a0f228553d..aae78b9d145 100644 --- a/ui/src/components/date/use-datetime.js +++ b/ui/src/components/date/use-datetime.js @@ -6,9 +6,7 @@ import { pad } from '../../utils/format/format.js' const calendars = [ 'gregorian', 'persian' ] export const useDatetimeProps = { - modelValue: { - required: true - }, + // should define modelValue in the target component mask: { type: String diff --git a/ui/src/components/time/QTime.js b/ui/src/components/time/QTime.js index 7b89ca3a16c..f09697935dd 100644 --- a/ui/src/components/time/QTime.js +++ b/ui/src/components/time/QTime.js @@ -46,7 +46,13 @@ export default createComponent({ ...useFormProps, ...useDatetimeProps, + modelValue: { + required: true, + validator: val => typeof val === 'string' || val === null + }, + mask: { + ...useDatetimeProps.mask, default: null },