From 436c06406ddc768c033fdc536dfddd46c5b8845e Mon Sep 17 00:00:00 2001 From: mohamedsalem401 Date: Mon, 8 Sep 2025 14:44:59 +0300 Subject: [PATCH] refactor get and set DataResolver to componentWrapper --- .../model/ComponentWithCollectionsState.ts | 10 +++++++++- .../data_collection/ComponentDataCollection.ts | 12 ++---------- .../src/dom_components/model/ComponentWrapper.ts | 16 ++-------------- 3 files changed, 13 insertions(+), 25 deletions(-) diff --git a/packages/core/src/data_sources/model/ComponentWithCollectionsState.ts b/packages/core/src/data_sources/model/ComponentWithCollectionsState.ts index e4cc64839..bcb90c511 100644 --- a/packages/core/src/data_sources/model/ComponentWithCollectionsState.ts +++ b/packages/core/src/data_sources/model/ComponentWithCollectionsState.ts @@ -11,7 +11,7 @@ import { isArray } from 'underscore'; export type DataVariableMap = Record; -export default class ComponentWithCollectionsState extends Component { +export default class ComponentWithCollectionsState extends Component { collectionsStateMap: DataCollectionStateMap = {}; dataSourceWatcher?: DataResolverListener; @@ -42,6 +42,14 @@ export default class ComponentWithCollectionsState extends Component { this.components().forEach((cmp) => cmp.syncComponentsCollectionState?.()); } + setDataResolver(dataResolver: DataResolverType | undefined) { + return this.set('dataResolver', dataResolver); + } + + getDataResolver(): DataResolverType | undefined { + return this.get('dataResolver'); + } + protected listenToDataSource() { const path = this.dataSourcePath; if (!path) return; diff --git a/packages/core/src/data_sources/model/data_collection/ComponentDataCollection.ts b/packages/core/src/data_sources/model/data_collection/ComponentDataCollection.ts index cd0ae6484..600301a53 100644 --- a/packages/core/src/data_sources/model/data_collection/ComponentDataCollection.ts +++ b/packages/core/src/data_sources/model/data_collection/ComponentDataCollection.ts @@ -19,7 +19,7 @@ import ComponentWithCollectionsState, { DataVariableMap } from '../ComponentWith const AvoidStoreOptions = { avoidStore: true, partial: true }; -export default class ComponentDataCollection extends ComponentWithCollectionsState { +export default class ComponentDataCollection extends ComponentWithCollectionsState { dataSourceWatcher?: DataResolverListener; get defaults(): ComponentDefinitionDefined { @@ -51,10 +51,6 @@ export default class ComponentDataCollection extends ComponentWithCollectionsSta return cmp; } - getDataResolver() { - return this.get('dataResolver'); - } - getItemsCount() { const items = this.getDataSourceItems(); const itemsCount = getLength(items); @@ -87,10 +83,6 @@ export default class ComponentDataCollection extends ComponentWithCollectionsSta return this.firstChild.components(); } - setDataResolver(props: DataCollectionProps) { - return this.set('dataResolver', props); - } - setCollectionId(collectionId: string) { this.updateCollectionConfig({ collectionId }); } @@ -296,7 +288,7 @@ export default class ComponentDataCollection extends ComponentWithCollectionsSta } private get collectionId() { - return this.getDataResolver().collectionId as string; + return this.getDataResolver()?.collectionId ?? ''; } static isComponent(el: HTMLElement) { diff --git a/packages/core/src/dom_components/model/ComponentWrapper.ts b/packages/core/src/dom_components/model/ComponentWrapper.ts index 9431ff9e8..06a3b21c2 100644 --- a/packages/core/src/dom_components/model/ComponentWrapper.ts +++ b/packages/core/src/dom_components/model/ComponentWrapper.ts @@ -9,7 +9,7 @@ import { DataVariableProps } from '../../data_sources/model/DataVariable'; import { DataCollectionStateMap } from '../../data_sources/model/data_collection/types'; import ComponentWithCollectionsState, { DataVariableMap } from '../../data_sources/model/ComponentWithCollectionsState'; -export default class ComponentWrapper extends ComponentWithCollectionsState { +export default class ComponentWrapper extends ComponentWithCollectionsState { dataSourceWatcher?: DataResolverListener; get defaults() { @@ -41,13 +41,9 @@ export default class ComponentWrapper extends ComponentWithCollectionsState { super(props, opt); const hasDataResolver = this.getDataResolver(); - console.log('🚀 ~ ComponentWrapper ~ constructor ~ hasDataResolver:', hasDataResolver); + if (hasDataResolver) { this.syncComponentsCollectionState(); - console.log( - '🚀 ~ ComponentWrapper ~ constructor ~ this.getCollectionsStateMap():', - this.getCollectionsStateMap(), - ); this.onCollectionsStateMapUpdate(this.getCollectionsStateMap()); } } @@ -100,14 +96,6 @@ export default class ComponentWrapper extends ComponentWithCollectionsState { return asDoc ? `${doctype}${headStr}${body}` : body; } - setDataResolver(dataResolver: DataVariableProps) { - return this.set('dataResolver', dataResolver); - } - - getDataResolver() { - return this.get('dataResolver'); - } - onCollectionsStateMapUpdate(collectionsStateMap: DataCollectionStateMap) { const { page, head } = this; super.onCollectionsStateMapUpdate(collectionsStateMap);