diff --git a/packages/client/src/api/datasources.js b/packages/client/src/api/datasources.js index 66890b230b..f97618b4a9 100644 --- a/packages/client/src/api/datasources.js +++ b/packages/client/src/api/datasources.js @@ -6,7 +6,7 @@ import { enrichRows } from "./rows" /** * Fetches all rows for a particular Budibase data source. */ -export const fetchDatasource = async (datasource, context) => { +export const fetchDatasource = async (datasource, dataContext) => { if (!datasource || !datasource.type) { return [] } @@ -20,9 +20,9 @@ export const fetchDatasource = async (datasource, context) => { rows = await fetchViewData(datasource) } else if (type === "link") { rows = await fetchRelationshipData({ - tableId: context?.row?.tableId, + rowId: dataContext?.data?._id, + tableId: dataContext?.data?.tableId, fieldName, - rowId: context?.row?._id, }) } diff --git a/packages/client/src/components/ClientApp.svelte b/packages/client/src/components/ClientApp.svelte index 77454edfa5..a0be2120b5 100644 --- a/packages/client/src/components/ClientApp.svelte +++ b/packages/client/src/components/ClientApp.svelte @@ -2,10 +2,11 @@ import { setContext, onMount } from "svelte" import Component from "./Component.svelte" import SDK from "../sdk" - import { routeStore, screenStore } from "../store" + import { routeStore, screenStore, createDataContextStore } from "../store" - // Provide SDK for components - setContext("app", SDK) + // Provide contexts + setContext("sdk", SDK) + setContext("data", createDataContextStore()) let loaded = false diff --git a/packages/client/src/components/Component.svelte b/packages/client/src/components/Component.svelte index 56e79e9449..273d217df3 100644 --- a/packages/client/src/components/Component.svelte +++ b/packages/client/src/components/Component.svelte @@ -1,21 +1,10 @@ {#if constructor} - + {#if children && children.length} {#each children as child} diff --git a/packages/client/src/components/DataProvider.svelte b/packages/client/src/components/DataProvider.svelte new file mode 100644 index 0000000000..30c1b4aec6 --- /dev/null +++ b/packages/client/src/components/DataProvider.svelte @@ -0,0 +1,24 @@ + + +{#if loaded} + +{/if} diff --git a/packages/client/src/components/Router.svelte b/packages/client/src/components/Router.svelte index f61bff7c10..693ec2dd28 100644 --- a/packages/client/src/components/Router.svelte +++ b/packages/client/src/components/Router.svelte @@ -1,11 +1,12 @@