diff --git a/web/src/features/dialog/InputDialog.tsx b/web/src/features/dialog/InputDialog.tsx index 8666faf..ba85991 100644 --- a/web/src/features/dialog/InputDialog.tsx +++ b/web/src/features/dialog/InputDialog.tsx @@ -62,10 +62,10 @@ const InputDialog: React.FC = () => { ? row.type === 'date' || row.type === 'date-range' ? // Set date to current one if default is set to true row.default === true - ? new Date() + ? new Date().getTime() : Array.isArray(row.default) - ? row.default.map((date) => new Date(date)) - : row.default && new Date(row.default) + ? row.default.map((date) => new Date(date).getTime()) + : row.default && new Date(row.default).getTime() : row.default : row.checked, } || { value: null } @@ -142,8 +142,9 @@ const InputDialog: React.FC = () => { {row.type === 'number' && } {row.type === 'slider' && } {row.type === 'color' && } - {row.type === 'date' || - (row.type === 'date-range' && )} + {row.type === 'date' || row.type === 'date-range' ? ( + + ) : null} ); })} diff --git a/web/src/features/dialog/components/fields/date.tsx b/web/src/features/dialog/components/fields/date.tsx index 0a3ea74..0385f01 100644 --- a/web/src/features/dialog/components/fields/date.tsx +++ b/web/src/features/dialog/components/fields/date.tsx @@ -14,12 +14,6 @@ const DateField: React.FC = (props) => { const controller = useController({ name: `test.${props.index}.value`, control: props.control, - defaultValue: - props.row.default === true - ? new Date() - : Array.isArray(props.row.default) - ? props.row.default.map((date) => new Date(date)) - : props.row.default && new Date(props.row.default), rules: { required: props.row.required }, }); @@ -27,11 +21,12 @@ const DateField: React.FC = (props) => { <> {props.row.type === 'date' ? ( controller.field.onChange(date ? date.getTime() : null)} label={props.row.label} description={props.row.description} placeholder={props.row.placeholder} @@ -44,23 +39,33 @@ const DateField: React.FC = (props) => { maxDate={props.row.max ? new Date(props.row.max) : undefined} /> ) : ( - } - minDate={props.row.min ? new Date(props.row.min) : undefined} - maxDate={props.row.max ? new Date(props.row.max) : undefined} - /> + props.row.type === 'date-range' && ( + new Date(date)) + : controller.field.value + : controller.field.value + } + name={controller.field.name} + ref={controller.field.ref} + onBlur={controller.field.onBlur} + onChange={(dates) => + controller.field.onChange(dates.map((date: Date | null) => (date ? date.getTime() : null))) + } + label={props.row.label} + description={props.row.description} + placeholder={props.row.placeholder} + disabled={props.row.disabled} + inputFormat="DD/MM/YYYY" + withAsterisk={props.row.required} + clearable={props.row.clearable} + icon={props.row.icon && } + minDate={props.row.min ? new Date(props.row.min) : undefined} + maxDate={props.row.max ? new Date(props.row.max) : undefined} + /> + ) )} );