Added datasource resolution behaviour for a Relationship picker nested in a form block
This commit is contained in:
parent
90d52ce9b7
commit
c576b6ea19
|
@ -1,6 +1,9 @@
|
||||||
<script>
|
<script>
|
||||||
import { currentAsset } from "builderStore"
|
import { currentAsset, store } from "builderStore"
|
||||||
import { findClosestMatchingComponent } from "builderStore/componentUtils"
|
import {
|
||||||
|
findClosestMatchingComponent,
|
||||||
|
findComponent,
|
||||||
|
} from "builderStore/componentUtils"
|
||||||
import {
|
import {
|
||||||
getDatasourceForProvider,
|
getDatasourceForProvider,
|
||||||
getSchemaForDatasource,
|
getSchemaForDatasource,
|
||||||
|
@ -20,8 +23,23 @@
|
||||||
component => component._component.endsWith("/form")
|
component => component._component.endsWith("/form")
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const resolveDatasource = (currentAsset, componentInstance, form) => {
|
||||||
|
if (!form && componentInstance._id != $store.selectedComponentId) {
|
||||||
|
const block = findComponent(
|
||||||
|
currentAsset.props,
|
||||||
|
$store.selectedComponentId
|
||||||
|
)
|
||||||
|
const def = store.actions.components.getDefinition(block._component)
|
||||||
|
return def?.block === true
|
||||||
|
? getDatasourceForProvider(currentAsset, block)
|
||||||
|
: {}
|
||||||
|
} else {
|
||||||
|
return getDatasourceForProvider(currentAsset, form)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Get that form's schema
|
// Get that form's schema
|
||||||
$: datasource = getDatasourceForProvider($currentAsset, form)
|
$: datasource = resolveDatasource($currentAsset, componentInstance, form)
|
||||||
$: formSchema = getSchemaForDatasource($currentAsset, datasource)?.schema
|
$: formSchema = getSchemaForDatasource($currentAsset, datasource)?.schema
|
||||||
|
|
||||||
// Get the schema for the relationship field that this picker is using
|
// Get the schema for the relationship field that this picker is using
|
||||||
|
|
Loading…
Reference in New Issue