|
|
@ -17,6 +17,7 @@ type ResolverCurrentItemType = string | number; |
|
|
export default class ComponentWrapper extends ComponentWithCollectionsState<DataVariableProps> { |
|
|
export default class ComponentWrapper extends ComponentWithCollectionsState<DataVariableProps> { |
|
|
dataSourceWatcher?: DataResolverListener; |
|
|
dataSourceWatcher?: DataResolverListener; |
|
|
private _resolverCurrentItem?: ResolverCurrentItemType; |
|
|
private _resolverCurrentItem?: ResolverCurrentItemType; |
|
|
|
|
|
private _isWatchingCollectionStateMap = false; |
|
|
|
|
|
|
|
|
get defaults() { |
|
|
get defaults() { |
|
|
return { |
|
|
return { |
|
|
@ -47,10 +48,9 @@ export default class ComponentWrapper extends ComponentWithCollectionsState<Data |
|
|
super(props, opt); |
|
|
super(props, opt); |
|
|
|
|
|
|
|
|
const hasDataResolver = this.getDataResolver(); |
|
|
const hasDataResolver = this.getDataResolver(); |
|
|
this.syncComponentsCollectionState(); |
|
|
|
|
|
|
|
|
|
|
|
if (hasDataResolver) { |
|
|
if (hasDataResolver) { |
|
|
this.onDataSourceChange(); |
|
|
this.onDataSourceChange(); |
|
|
|
|
|
this.syncComponentsCollectionState(); |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -135,9 +135,18 @@ export default class ComponentWrapper extends ComponentWithCollectionsState<Data |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
protected listenToPropsChange() { |
|
|
protected listenToPropsChange() { |
|
|
this.on(`change:dataResolver`, () => { |
|
|
this.on(`change:dataResolver`, (_, value) => { |
|
|
this.onCollectionsStateMapUpdate(this.getCollectionsStateMap()); |
|
|
const hasResolver = !isUndefined(value); |
|
|
this.listenToDataSource(); |
|
|
|
|
|
|
|
|
if (hasResolver && !this._isWatchingCollectionStateMap) { |
|
|
|
|
|
this._isWatchingCollectionStateMap = true; |
|
|
|
|
|
this.syncComponentsCollectionState(); |
|
|
|
|
|
this.onCollectionsStateMapUpdate(this.getCollectionsStateMap()); |
|
|
|
|
|
this.listenToDataSource(); |
|
|
|
|
|
} else if (!hasResolver && this._isWatchingCollectionStateMap) { |
|
|
|
|
|
this._isWatchingCollectionStateMap = false; |
|
|
|
|
|
this.stopSyncComponentCollectionState(); |
|
|
|
|
|
} |
|
|
}); |
|
|
}); |
|
|
|
|
|
|
|
|
this.listenToDataSource(); |
|
|
this.listenToDataSource(); |
|
|
|