From 732c715498470e8557952392d483bf4755b8a6b9 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Fri, 22 Mar 2024 12:09:55 +0000 Subject: [PATCH 1/4] Add snippets into context when transforming column values legacy tables --- packages/bbui/src/Table/CellRenderer.svelte | 5 ++++- packages/bbui/src/Table/Table.svelte | 2 ++ .../client/src/components/app/deprecated/table/Table.svelte | 3 +++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/bbui/src/Table/CellRenderer.svelte b/packages/bbui/src/Table/CellRenderer.svelte index 4ad6e22d7e..6f6e210fe1 100644 --- a/packages/bbui/src/Table/CellRenderer.svelte +++ b/packages/bbui/src/Table/CellRenderer.svelte @@ -12,6 +12,7 @@ export let schema export let value export let customRenderers = [] + export let snippets let renderer const typeMap = { @@ -32,6 +33,8 @@ $: renderer = customRenderer?.component ?? typeMap[type] ?? StringRenderer $: cellValue = getCellValue(value, schema.template) + $: console.log(snippets) + const getType = schema => { // Use a string renderer for dates if we use a custom template if (schema?.type === "datetime" && schema?.template) { @@ -44,7 +47,7 @@ if (!template) { return value } - return processStringSync(template, { value }) + return processStringSync(template, { value, snippets }) } diff --git a/packages/bbui/src/Table/Table.svelte b/packages/bbui/src/Table/Table.svelte index 33b9bd9a7e..868f7b3a0b 100644 --- a/packages/bbui/src/Table/Table.svelte +++ b/packages/bbui/src/Table/Table.svelte @@ -42,6 +42,7 @@ export let customPlaceholder = false export let showHeaderBorder = true export let placeholderText = "No rows found" + export let snippets = [] const dispatch = createEventDispatcher() @@ -425,6 +426,7 @@ Date: Fri, 22 Mar 2024 12:10:22 +0000 Subject: [PATCH 2/4] Fix code mirror autocomplete showing NO NAME for certain bindings --- packages/builder/src/components/common/CodeEditor/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/builder/src/components/common/CodeEditor/index.js b/packages/builder/src/components/common/CodeEditor/index.js index f66c84adce..a04a140ad6 100644 --- a/packages/builder/src/components/common/CodeEditor/index.js +++ b/packages/builder/src/components/common/CodeEditor/index.js @@ -313,7 +313,7 @@ export const bindingsToCompletions = (bindings, mode) => { ...bindingByCategory[catKey].reduce((acc, binding) => { let displayType = binding.fieldSchema?.type || binding.display?.type acc.push({ - label: binding.display?.name || "NO NAME", + label: binding.display?.name || binding.readableBinding || "NO NAME", info: completion => { return buildBindingInfoNode(completion, binding) }, From 53cd48e8663a12d6d87dfaa26cb6665ec4772ebe Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Fri, 22 Mar 2024 12:11:03 +0000 Subject: [PATCH 3/4] Add value for 'value' binding when editing table columns to improve live eval --- .../components/common/bindings/ClientBindingPanel.svelte | 3 ++- .../settings/controls/ColumnEditor/CellDrawer.svelte | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/packages/builder/src/components/common/bindings/ClientBindingPanel.svelte b/packages/builder/src/components/common/bindings/ClientBindingPanel.svelte index cb65d2bbe4..4e5789b563 100644 --- a/packages/builder/src/components/common/bindings/ClientBindingPanel.svelte +++ b/packages/builder/src/components/common/bindings/ClientBindingPanel.svelte @@ -8,6 +8,7 @@ export let allowJS = false export let allowHelpers = true export let autofocusEditor = false + export let context = null $: enrichedBindings = enrichBindings(bindings) @@ -27,7 +28,7 @@ @@ -41,6 +44,9 @@ icon: "TableColumnMerge", }, ]} + context={{ + value: columnValue, + }} /> From a64738fa253a8bcaf7df57267d1e00026740d173 Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Fri, 22 Mar 2024 12:14:59 +0000 Subject: [PATCH 4/4] Provide live eval context from legacy table components --- .../app/deprecated/table/Table.svelte | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/packages/client/src/components/app/deprecated/table/Table.svelte b/packages/client/src/components/app/deprecated/table/Table.svelte index 71f3cc1712..ac3d88d29c 100644 --- a/packages/client/src/components/app/deprecated/table/Table.svelte +++ b/packages/client/src/components/app/deprecated/table/Table.svelte @@ -17,8 +17,14 @@ const component = getContext("component") const context = getContext("context") - const { styleable, getAction, ActionTypes, rowSelectionStore } = - getContext("sdk") + const { + styleable, + getAction, + ActionTypes, + rowSelectionStore, + generateGoldenSample, + } = getContext("sdk") + const customColumnKey = `custom-${Math.random()}` const customRenderers = [ { @@ -63,6 +69,16 @@ selectedRows, } + // Provide additional data context for live binding eval + export const getAdditionalDataContext = () => { + const goldenRow = generateGoldenSample(data) + return { + eventContext: { + row: goldenRow, + }, + } + } + const getFields = ( schema, customColumns,