From 3c81fba0b61699c483d2389c39c06672a4806f48 Mon Sep 17 00:00:00 2001 From: Maarten den Braber Date: Sun, 26 Jan 2025 00:09:45 +0100 Subject: [PATCH 01/10] Fix date on new fields --- src/ui/components/FieldControl/FieldControl.svelte | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/ui/components/FieldControl/FieldControl.svelte b/src/ui/components/FieldControl/FieldControl.svelte index e427c22d..4b522b15 100644 --- a/src/ui/components/FieldControl/FieldControl.svelte +++ b/src/ui/components/FieldControl/FieldControl.svelte @@ -76,11 +76,11 @@ on:change={({ detail: value }) => (cachedValue = value)} on:blur={() => { if (!cachedValue) { - onChange(cachedValue); + onChange(); return; } const cachedDate = dayjs(cachedValue); - const newDatetime = dayjs(isDate(value) ? value : null) + const newDatetime = dayjs(isDate(value) ? value : cachedValue) .set("year", cachedDate.year()) .set("month", cachedDate.month()) .set("date", cachedDate.date()); From 71c3574bbf8bd647927d192d9304e7dbebe184e6 Mon Sep 17 00:00:00 2001 From: Chiyu Liang <532117255@qq.com> Date: Sat, 25 Jan 2025 20:23:43 -0500 Subject: [PATCH 02/10] Fix date input Add input event handler call to DateInput Shift to local DateInput component Reserve submitting null when no cache Simplified date / datetime input Clean up --- .../viewOptions/color/ColorOptions.svelte | 3 +- .../viewOptions/filter/FilterOptions.svelte | 3 +- src/ui/components/DateInput.svelte | 66 +++++++++++++++++++ .../FieldControl/FieldControl.svelte | 9 +-- src/ui/modals/components/CreateField.svelte | 3 +- .../GridCell/GridDateCell/GridDateCell.svelte | 10 +-- .../GridDatetimeCell/GridDatetimeCell.svelte | 4 +- 7 files changed, 85 insertions(+), 13 deletions(-) create mode 100644 src/ui/components/DateInput.svelte diff --git a/src/ui/app/toolbar/viewOptions/color/ColorOptions.svelte b/src/ui/app/toolbar/viewOptions/color/ColorOptions.svelte index 49231f49..874fa346 100644 --- a/src/ui/app/toolbar/viewOptions/color/ColorOptions.svelte +++ b/src/ui/app/toolbar/viewOptions/color/ColorOptions.svelte @@ -11,9 +11,10 @@ NumberInput, ColorInput, Checkbox, - DateInput, + // DateInput, // DatetimeInput, } from "obsidian-svelte"; + import DateInput from "src/ui/components/DateInput.svelte"; import DatetimeInput from "src/ui/components/DatetimeInput.svelte"; import { TagsInput } from "src/ui/components/TagsInput"; import HorizontalGroup from "src/ui/components/HorizontalGroup/HorizontalGroup.svelte"; diff --git a/src/ui/app/toolbar/viewOptions/filter/FilterOptions.svelte b/src/ui/app/toolbar/viewOptions/filter/FilterOptions.svelte index 21a2144e..ca4ef151 100644 --- a/src/ui/app/toolbar/viewOptions/filter/FilterOptions.svelte +++ b/src/ui/app/toolbar/viewOptions/filter/FilterOptions.svelte @@ -9,9 +9,10 @@ TextInput, NumberInput, Checkbox, - DateInput, + // DateInput, // DatetimeInput, } from "obsidian-svelte"; + import DateInput from "src/ui/components/DateInput.svelte"; import DatetimeInput from "src/ui/components/DatetimeInput.svelte"; import { TagsInput } from "src/ui/components/TagsInput"; import HorizontalGroup from "src/ui/components/HorizontalGroup/HorizontalGroup.svelte"; diff --git a/src/ui/components/DateInput.svelte b/src/ui/components/DateInput.svelte new file mode 100644 index 00000000..e7ca4a42 --- /dev/null +++ b/src/ui/components/DateInput.svelte @@ -0,0 +1,66 @@ + + + + + diff --git a/src/ui/components/FieldControl/FieldControl.svelte b/src/ui/components/FieldControl/FieldControl.svelte index 4b522b15..19121ff7 100644 --- a/src/ui/components/FieldControl/FieldControl.svelte +++ b/src/ui/components/FieldControl/FieldControl.svelte @@ -1,12 +1,13 @@ -{#if field.type === DataFieldType.Date && !field.repeated && value instanceof Date} - {Intl.DateTimeFormat("default", { +{#if field.type === DataFieldType.Date && !field.repeated && isDate(value)} + {value.toPlainDateTime().toLocaleString("default", { year: "numeric", month: "numeric", day: "numeric", - }).format(value)} + })} {/if} diff --git a/src/ui/components/CardMetadata/Datetime.svelte b/src/ui/components/CardMetadata/Datetime.svelte index ed272094..04cdf005 100644 --- a/src/ui/components/CardMetadata/Datetime.svelte +++ b/src/ui/components/CardMetadata/Datetime.svelte @@ -1,6 +1,7 @@ -{#if field.type === DataFieldType.Date && !field.repeated && value instanceof Date} - {Intl.DateTimeFormat("default", { +{#if field.type === DataFieldType.Date && !field.repeated && isDate(value)} + {value.toPlainDateTime().toLocaleString("default", { year: "numeric", month: "numeric", day: "numeric", hour: "numeric", minute: "numeric", hour12: false, - }).format(value)} + })} {/if} diff --git a/src/ui/components/DateInput.svelte b/src/ui/components/DateInput.svelte index e7ca4a42..3410eecf 100644 --- a/src/ui/components/DateInput.svelte +++ b/src/ui/components/DateInput.svelte @@ -1,11 +1,11 @@