From c6fca37b43c59a6be56d1383d6a2facc08d437ba Mon Sep 17 00:00:00 2001 From: Andrew Kingston Date: Thu, 21 Mar 2024 16:05:02 +0000 Subject: [PATCH] Update dataprovider validation which was not aware of global bindings --- packages/builder/src/stores/builder/components.js | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/packages/builder/src/stores/builder/components.js b/packages/builder/src/stores/builder/components.js index 0d7da1ba58..a8522db80c 100644 --- a/packages/builder/src/stores/builder/components.js +++ b/packages/builder/src/stores/builder/components.js @@ -11,6 +11,7 @@ import { findComponentParent, findAllMatchingComponents, makeComponentUnique, + findComponentType, } from "helpers/components" import { getComponentFieldOptions } from "helpers/formFields" import { selectedScreen } from "./screens" @@ -279,12 +280,10 @@ export class ComponentStore extends BudiStore { else { if (setting.type === "dataProvider") { // Validate data provider exists, or else clear it - const treeId = parent?._id || component._id - const path = findComponentPath(screen?.props, treeId) - const providers = path.filter(component => - component._component?.endsWith("/dataprovider") + const providers = findAllMatchingComponents( + screen?.props, + x => x._component === "@budibase/standard-components/dataprovider" ) - // Validate non-empty values const valid = providers?.some(dp => value.includes?.(dp._id)) if (!valid) { if (providers.length) {