Add default value for date field

This commit is contained in:
Andrew Kingston 2021-08-04 14:33:09 +01:00
parent d8172faab6
commit f1f08dd85d
1 changed files with 32 additions and 1 deletions

View File

@ -7,12 +7,43 @@
export let placeholder
export let disabled = false
export let enableTime = false
export let defaultValue
let fieldState
let fieldApi
const parseDate = val => {
if (!val) {
return null
}
let date
if (isNaN(val)) {
// Treat as date string of some sort
date = new Date(val)
} else {
// Treat as numerical timestamp
date = new Date(parseInt(val))
}
const time = date.getTime()
if (isNaN(time)) {
return null
}
// By rounding to the nearest second we avoid locking up in an endless
// loop in the builder, caused by potentially enriching {{ now }} to every
// millisecond.
return new Date(Math.floor(time / 1000) * 1000)
}
</script>
<Field {label} {field} {disabled} type="datetime" bind:fieldState bind:fieldApi>
<Field
{label}
{field}
{disabled}
defaultValue={parseDate(defaultValue)}
type="datetime"
bind:fieldState
bind:fieldApi
>
{#if fieldState}
<CoreDatePicker
value={$fieldState.value}