diff --git a/CHANGELOG.md b/CHANGELOG.md index 4ec6be853..043b28609 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,16 @@ # Changelog +## v1.0.0-128 + + +### 🩹 Fixes + +- Fix json default format ([036aeca](https://github.com/undb-io/undb/commit/036aeca)) + +### ❤️ Contributors + +- Nichenqin ([@nichenqin](http://github.com/nichenqin)) + ## v1.0.0-127 diff --git a/apps/frontend/src/lib/components/blocks/field-control/json-control.svelte b/apps/frontend/src/lib/components/blocks/field-control/json-control.svelte index 6f8837c5a..a3908505b 100644 --- a/apps/frontend/src/lib/components/blocks/field-control/json-control.svelte +++ b/apps/frontend/src/lib/components/blocks/field-control/json-control.svelte @@ -7,7 +7,7 @@ export let onValueChange: (value: Json) => void let content: Content = { - text: "{}", + text: JSON.stringify(value ?? {}, null, 2), json: value ?? {}, } diff --git a/apps/frontend/src/lib/components/blocks/grid-view/editable-cell/json-cell.svelte b/apps/frontend/src/lib/components/blocks/grid-view/editable-cell/json-cell.svelte index 950f905fd..3313c7af6 100644 --- a/apps/frontend/src/lib/components/blocks/grid-view/editable-cell/json-cell.svelte +++ b/apps/frontend/src/lib/components/blocks/grid-view/editable-cell/json-cell.svelte @@ -14,7 +14,7 @@ export let isSelected: boolean export let field: JsonField export let recordId: string - export let onValueChange: (value: JsonValue) => void + export let onValueChange: (value: JsonValue | undefined) => void const updateCell = createMutation({ mutationKey: ["record", tableId, field.id.value, recordId], @@ -25,7 +25,7 @@ }) let content: Content = { - text: undefined, + text: JSON.stringify(value ?? {}, null, 2), json: value ?? {}, } diff --git a/apps/frontend/src/lib/components/blocks/grid-view/grid-view-cell.svelte b/apps/frontend/src/lib/components/blocks/grid-view/grid-view-cell.svelte index 0248b7a21..c3ade7fbb 100644 --- a/apps/frontend/src/lib/components/blocks/grid-view/grid-view-cell.svelte +++ b/apps/frontend/src/lib/components/blocks/grid-view/grid-view-cell.svelte @@ -97,6 +97,6 @@ )} onValueChange={(v) => { value = v - recordsStore.setRecordValue(recordId, field.id.value, v) + recordsStore.setRecordValue(recordId, field, v) }} /> diff --git a/apps/frontend/src/lib/components/blocks/kanban-view/select-kanban-lane.svelte b/apps/frontend/src/lib/components/blocks/kanban-view/select-kanban-lane.svelte index 9794295c2..64e195ce0 100644 --- a/apps/frontend/src/lib/components/blocks/kanban-view/select-kanban-lane.svelte +++ b/apps/frontend/src/lib/components/blocks/kanban-view/select-kanban-lane.svelte @@ -6,6 +6,8 @@ import { FieldIdVo, KanbanView, + RecordDO, + SelectFieldValue, Records, SelectEqual, SelectField, @@ -122,10 +124,12 @@ let laneElement: HTMLElement + const spec = Some(new SelectEqual(option?.id ?? null, new FieldIdVo(fieldId))) + const updateRecord = createMutation({ mutationFn: trpc.record.update.mutate, - onSuccess: (data, variables, context) => { - recordsStore?.invalidateRecord($table, variables.id) + onError: (error, variables, context) => { + toast.error(error.message) }, }) @@ -170,6 +174,11 @@ }, }) } + let records = derived(recordsStore, ($recordsStore) => + [...$recordsStore.records.values()].filter((record) => + spec.isSome() ? spec.unwrap().isSatisfiedBy(record) : true, + ), + ) onMount(() => { if (!shareId && !readonly && laneElement) { @@ -192,8 +201,14 @@ onEnd: (evt) => { const recordId = evt.item.dataset.recordId if (!recordId) return + const fromOptionId = evt.from.dataset.optionId ?? null const optionId = evt.to.dataset.optionId ?? null + recordsStore.setRecordValue(recordId, field, optionId) + if (fromOptionId !== optionId) { + evt.item.remove() + } + $updateRecord.mutate({ tableId, id: recordId, @@ -206,9 +221,12 @@ } }) + let lastSetPage = 0 $: { // @ts-ignore - const records = ($query.data?.pages.flatMap((r: any) => r.records) as IRecordsDTO) ?? [] + const records = ($query.data?.pages.slice(lastSetPage).flatMap((r: any) => r.records) as IRecordsDTO) ?? [] + // @ts-ignore + lastSetPage = $query.data?.pages.length ?? 0 recordsStore.upsertRecords(Records.fromJSON($table, records)) } @@ -216,9 +234,6 @@ recordsStore.clearRecords() }) - let storeGetRecords = recordsStore.getRecords - $: recordDos = $storeGetRecords(Some(new SelectEqual(option?.id ?? null, new FieldIdVo(fieldId)))) - $: fields = $table.getOrderedVisibleFields($viewId) ?? [] let updateOptionDialogOpen = false @@ -330,7 +345,7 @@ > {#if $hasPermission("record:create")} {#if $query.isFetchedAfterMount} - {#if recordDos.length > 0} + {#if $records.length > 0} @@ -359,7 +374,7 @@ {:else if $query.isError}
error: {$query.error.message}
{:else} - {#each recordDos as record (record.id.value)} + {#each $records as record (record.id.value)}