From f0dbfa15bf578a1064ca67825f02c5380f6c7723 Mon Sep 17 00:00:00 2001 From: Michael Shanks Date: Mon, 24 Feb 2020 16:41:03 +0000 Subject: [PATCH] added _bb.get/setContext to clientApi - for MD components --- packages/client/src/state/bbComponentApi.js | 3 +++ packages/client/src/state/getSetContext.js | 11 +++++++++++ .../src/Datatable/Datatable.svelte | 1 + .../src/Datatable/DatatableBody.svelte | 3 +-- .../src/Datatable/DatatableCell.svelte | 5 ++--- .../src/Datatable/DatatableHead.svelte | 4 +--- .../src/Datatable/DatatableRow.svelte | 5 ++--- 7 files changed, 21 insertions(+), 11 deletions(-) create mode 100644 packages/client/src/state/getSetContext.js diff --git a/packages/client/src/state/bbComponentApi.js b/packages/client/src/state/bbComponentApi.js index f51a7e2d24..d130a4b7ae 100644 --- a/packages/client/src/state/bbComponentApi.js +++ b/packages/client/src/state/bbComponentApi.js @@ -3,6 +3,7 @@ import { setState, setStateFromBinding } from "./setState" import { trimSlash } from "../common/trimSlash" import { isBound } from "./parseBinding" import { attachChildren } from "../render/attachChildren" +import { getContext, setContext } from "./getSetContext" export const bbFactory = ({ store, @@ -60,6 +61,8 @@ export const bbFactory = ({ setState: (path, value) => setState(store, path, value), getStateOrValue: (prop, currentContext) => getStateOrValue(getCurrentState(), prop, currentContext), + getContext: getContext(treeNode), + setContext: setContext(treeNode), store: store, relativeUrl, api, diff --git a/packages/client/src/state/getSetContext.js b/packages/client/src/state/getSetContext.js new file mode 100644 index 0000000000..58dbb22d2c --- /dev/null +++ b/packages/client/src/state/getSetContext.js @@ -0,0 +1,11 @@ +export const setContext = treeNode => (key, value) => + (treeNode.context[key] = value) + +export const getContext = treeNode => key => { + if (treeNode.context && treeNode.context[key] !== undefined) + return treeNode.context[key] + + if (!treeNode.context.$parent) return + + return getContext(treeNode.parentNode)(key) +} diff --git a/packages/materialdesign-components/src/Datatable/Datatable.svelte b/packages/materialdesign-components/src/Datatable/Datatable.svelte index 3e7e2c7b11..07d455adab 100644 --- a/packages/materialdesign-components/src/Datatable/Datatable.svelte +++ b/packages/materialdesign-components/src/Datatable/Datatable.svelte @@ -10,6 +10,7 @@ export let onLoad const cb = new ClassBuilder("data-table") + _bb.setContext("BBMD:data-table:cb", cb) let datatable = null let instance = null diff --git a/packages/materialdesign-components/src/Datatable/DatatableBody.svelte b/packages/materialdesign-components/src/Datatable/DatatableBody.svelte index ad7108ff9c..6e6e2d2c54 100644 --- a/packages/materialdesign-components/src/Datatable/DatatableBody.svelte +++ b/packages/materialdesign-components/src/Datatable/DatatableBody.svelte @@ -1,10 +1,9 @@