From a5ea58ceb9cb3948b1715f9d3530f6cf05ba5e3a Mon Sep 17 00:00:00 2001 From: nichenqin Date: Tue, 19 Nov 2024 20:33:17 +0800 Subject: [PATCH 1/4] fix: fix calendar default value --- .../blocks/field-options/checkbox-field-option.svelte | 2 +- .../fields/variants/checkbox-field/checkbox-field.vo.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/frontend/src/lib/components/blocks/field-options/checkbox-field-option.svelte b/apps/frontend/src/lib/components/blocks/field-options/checkbox-field-option.svelte index 3ada2e2f5..7d3b34d72 100644 --- a/apps/frontend/src/lib/components/blocks/field-options/checkbox-field-option.svelte +++ b/apps/frontend/src/lib/components/blocks/field-options/checkbox-field-option.svelte @@ -3,7 +3,7 @@ import Checkbox from "$lib/components/ui/checkbox/checkbox.svelte" import { Label } from "$lib/components/ui/label/index.js" - export let defaultValue: boolean | undefined + export let defaultValue: boolean | undefined = false export let disabled: boolean | undefined diff --git a/packages/table/src/modules/schema/fields/variants/checkbox-field/checkbox-field.vo.ts b/packages/table/src/modules/schema/fields/variants/checkbox-field/checkbox-field.vo.ts index 4ebaa1164..31a24b55c 100644 --- a/packages/table/src/modules/schema/fields/variants/checkbox-field/checkbox-field.vo.ts +++ b/packages/table/src/modules/schema/fields/variants/checkbox-field/checkbox-field.vo.ts @@ -39,8 +39,8 @@ export type ICheckboxFieldDTO = z.infer export class CheckboxField extends AbstractField { constructor(dto: ICheckboxFieldDTO) { super(dto) - if (dto.defaultValue === true) { - this.defaultValue = new CheckboxFieldValue(dto.defaultValue ?? false) + if (typeof dto.defaultValue === "boolean") { + this.defaultValue = new CheckboxFieldValue(dto.defaultValue) } } From 3e7760b2a6059e74264da86814ffa5a3773730f5 Mon Sep 17 00:00:00 2001 From: nichenqin Date: Tue, 19 Nov 2024 20:41:55 +0800 Subject: [PATCH 2/4] fix: fix checkbox default value --- .../schema/fields/variants/checkbox-field/checkbox-field.vo.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/table/src/modules/schema/fields/variants/checkbox-field/checkbox-field.vo.ts b/packages/table/src/modules/schema/fields/variants/checkbox-field/checkbox-field.vo.ts index 31a24b55c..db025b173 100644 --- a/packages/table/src/modules/schema/fields/variants/checkbox-field/checkbox-field.vo.ts +++ b/packages/table/src/modules/schema/fields/variants/checkbox-field/checkbox-field.vo.ts @@ -88,6 +88,6 @@ export class CheckboxField extends AbstractField { } override getMutationSpec(value: CheckboxFieldValue): Option { - return Some(new CheckboxEqual(value.value, this.id)) + return Some(new CheckboxEqual(!!value.value, this.id)) } } From 9c1f42234755bc33b961fa0bfb6fc7553dfddd95 Mon Sep 17 00:00:00 2001 From: nichenqin Date: Tue, 19 Nov 2024 21:11:42 +0800 Subject: [PATCH 3/4] fix: fix calendar virtual list --- .../calendar-view-month-records.svelte | 44 ++++++++++------ .../select-calendar-field-form.svelte | 52 +++++++++++++------ 2 files changed, 65 insertions(+), 31 deletions(-) diff --git a/apps/frontend/src/lib/components/blocks/calendar-view/calendar-view-month-records.svelte b/apps/frontend/src/lib/components/blocks/calendar-view/calendar-view-month-records.svelte index 32bc2bb04..5f7bc5d66 100644 --- a/apps/frontend/src/lib/components/blocks/calendar-view/calendar-view-month-records.svelte +++ b/apps/frontend/src/lib/components/blocks/calendar-view/calendar-view-month-records.svelte @@ -118,6 +118,7 @@ $: records = Records.fromJSON($t, rs) let virtualListEl: HTMLDivElement + let virtualItemEls: HTMLDivElement[] = [] $: color = $viewId ? $t.views.getViewById($viewId)?.color.into(undefined) : undefined @@ -127,6 +128,14 @@ estimateSize: () => 60, overscan: 5, }) + + $: items = $virtualizer.getVirtualItems() + + $: { + if (virtualItemEls.length) { + virtualItemEls.forEach((el) => $virtualizer.measureElement(el)) + } + }
@@ -146,21 +155,26 @@
{#if !records.isEmpty}
- {#each $virtualizer.getVirtualItems() as row (row.key)} -
- -
- {/each} +
+ {#each items as row, idx (row.key)} +
+ +
+ {/each} +
{#if $getRecords.hasNextPage} diff --git a/apps/frontend/src/lib/components/blocks/calendar-view/select-calendar-field-form.svelte b/apps/frontend/src/lib/components/blocks/calendar-view/select-calendar-field-form.svelte index 1ecd24ae1..56bb178bb 100644 --- a/apps/frontend/src/lib/components/blocks/calendar-view/select-calendar-field-form.svelte +++ b/apps/frontend/src/lib/components/blocks/calendar-view/select-calendar-field-form.svelte @@ -12,6 +12,7 @@ import { invalidate } from "$app/navigation" import { hasPermission } from "$lib/store/space-member.store" import { CircleCheckBigIcon } from "lucide-svelte" + import * as Form from "$lib/components/ui/form" export let readonly = false @@ -21,6 +22,8 @@ export let view: CalendarView + let calendar = view.calendar.unwrapOrElse(() => ({ field: undefined, timeScale: "month" })) + const form = superForm( defaults( { @@ -28,7 +31,10 @@ viewId: view.id.value, type: "calendar", name: view.name.value, - calendar: view.calendar.unwrapOrElse(() => ({ field: undefined })), + calendar: { + ...calendar, + timeScale: calendar.timeScale ?? "month", + }, }, zodClient(updateCalendarViewDTO), ), @@ -38,15 +44,21 @@ validators: zodClient(updateCalendarViewDTO), resetForm: false, invalidateAll: false, + onSubmit(event) { + validateForm({ update: true }) + }, onUpdate(event) { - if (!event.form.valid) return + if (!event.form.valid) { + console.log(event.form.errors, event.form.data) + return + } $updateViewMutation.mutate(event.form.data) }, }, ) - const { enhance, form: formData } = form + const { enhance, form: formData, validateForm } = form const updateViewMutation = createMutation({ mutationFn: trpc.table.view.update.mutate, @@ -62,19 +74,27 @@
- { - if ($formData.calendar) { - $formData.calendar.field = field - } else { - $formData.calendar = { field } - } - }} - filter={(f) => fields.map((f) => f.id.value).includes(f.id)} - /> + + + Calendar field + { + if ($formData.calendar) { + $formData.calendar.field = field + } else { + $formData.calendar = { field } + } + }} + filter={(f) => fields.map((f) => f.id.value).includes(f.id)} + /> + + + +
From 728e6abe94394e99add88d593f4493e8dd63d186 Mon Sep 17 00:00:00 2001 From: GitHub actions Date: Tue, 19 Nov 2024 13:18:42 +0000 Subject: [PATCH 4/4] Prepare release v1.0.0-122 --- CHANGELOG.md | 11 +++++++++++ package.json | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5549628d2..abab49bba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## v1.0.0-122 + + +### 🩹 Fixes + +- Fix calendar virtual list ([9c1f422](https://github.com/undb-io/undb/commit/9c1f422)) + +### ❤️ Contributors + +- Nichenqin ([@nichenqin](http://github.com/nichenqin)) + ## v1.0.0-121 diff --git a/package.json b/package.json index a06c0b7e6..4be4007d3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "undb", - "version": "1.0.0-121", + "version": "1.0.0-122", "private": true, "scripts": { "build": "NODE_ENV=production bun --bun turbo build",