From 168e224d3e1c726ca1215b0af12dd5433bef15f5 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Wed, 25 Jun 2025 17:54:00 +0300 Subject: [PATCH] refactor(book/table): make clear what kind of attribute is being changed --- .../widgets/view_widgets/table_view/data.ts | 22 +++++++++---------- .../view_widgets/table_view/renderer.ts | 7 ++++-- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/apps/client/src/widgets/view_widgets/table_view/data.ts b/apps/client/src/widgets/view_widgets/table_view/data.ts index 1a7d6fd08..7a8a461d8 100644 --- a/apps/client/src/widgets/view_widgets/table_view/data.ts +++ b/apps/client/src/widgets/view_widgets/table_view/data.ts @@ -6,7 +6,8 @@ import { default as getPromotedAttributeInformation, type PromotedAttributeInfor export type TableData = { noteId: string; title: string; -} & Record; + labels: Record; +}; type GridLabelType = 'text' | 'number' | 'boolean' | 'date' | 'dateString' | 'object'; @@ -33,7 +34,7 @@ export function buildColumnDefinitions(info: PromotedAttributeInformation[]) { for (const { name, title, type } of info) { columnDefs.push({ - field: name, + field: `labels.${name}`, headerName: title, cellDataType: mapDataType(type), editable: true @@ -64,20 +65,19 @@ function mapDataType(labelType: LabelType | undefined): GridLabelType { export function buildRowDefinitions(notes: FNote[], infos: PromotedAttributeInformation[]) { const definitions: GridOptions["rowData"] = []; for (const note of notes) { - const data = { - noteId: note.noteId, - title: note.title - }; - + const labels: typeof definitions[0]["labels"] = {}; for (const { name, type } of infos) { if (type === "boolean") { - data[name] = note.hasLabel(name); + labels[name] = note.hasLabel(name); } else { - data[name] = note.getLabelValue(name); + labels[name] = note.getLabelValue(name); } } - - definitions.push(data); + definitions.push({ + noteId: note.noteId, + title: note.title, + labels + }); } return definitions; diff --git a/apps/client/src/widgets/view_widgets/table_view/renderer.ts b/apps/client/src/widgets/view_widgets/table_view/renderer.ts index 18ed838a4..c4e7384b4 100644 --- a/apps/client/src/widgets/view_widgets/table_view/renderer.ts +++ b/apps/client/src/widgets/view_widgets/table_view/renderer.ts @@ -42,8 +42,11 @@ function setupEditing(): GridOptions { return; } - const { newValue } = event; - setLabel(noteId, name, newValue); + if (name.startsWith("labels.")) { + const { newValue } = event; + const labelName = name.split(".", 2)[1]; + setLabel(noteId, labelName, newValue); + } } } }