From faa1c27d293e6f21890020807835ddd9e9b77512 Mon Sep 17 00:00:00 2001 From: adrinr Date: Fri, 31 Mar 2023 10:53:50 +0100 Subject: [PATCH] Refresh sql columns on defining relationships --- .../components/backend/DataTable/DataTable.svelte | 5 ++++- packages/builder/src/stores/backend/tables.js | 13 +++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/packages/builder/src/components/backend/DataTable/DataTable.svelte b/packages/builder/src/components/backend/DataTable/DataTable.svelte index 162240e12c..d315e68356 100644 --- a/packages/builder/src/components/backend/DataTable/DataTable.svelte +++ b/packages/builder/src/components/backend/DataTable/DataTable.svelte @@ -136,6 +136,7 @@ const onUpdateColumns = () => { selectedRows = [] fetch.refresh() + tables.fetchTable(id) } // Fetch data whenever rows are modified. Unfortunately we have to lose @@ -148,8 +149,10 @@ // When importing new rows it is better to reinitialise request/paging data. // Not doing so causes inconsistency in paging behaviour and content. const onImportData = () => { - fetch.getInitialData() + fetch.getInitialData(enrichedSchema) } + + $: console.log(enrichedSchema)
diff --git a/packages/builder/src/stores/backend/tables.js b/packages/builder/src/stores/backend/tables.js index ee38504dd1..3b7ce35dde 100644 --- a/packages/builder/src/stores/backend/tables.js +++ b/packages/builder/src/stores/backend/tables.js @@ -22,6 +22,18 @@ export function createTablesStore() { })) } + const fetchTable = async tableId => { + const table = await API.fetchTableDefinition(tableId) + + store.update(state => { + const indexToUpdate = state.list.findIndex(t => t._id === table._id) + state.list[indexToUpdate] = table + return { + ...state, + } + }) + } + const select = tableId => { store.update(state => ({ ...state, @@ -126,6 +138,7 @@ export function createTablesStore() { return { subscribe: derivedStore.subscribe, fetch, + fetchTable, init: fetch, select, save,