Browse Source

Switch to a new pathSource event.

The `data:path:SOURCE_ID` doesn't work as it triggers rebuilds of symbols in ComponentDataCollection
pull/6540/head
Artur Arseniev 1 year ago
parent
commit
2a0f30be1b
  1. 2
      packages/core/src/data_sources/model/DataRecord.ts
  2. 9
      packages/core/src/data_sources/types.ts

2
packages/core/src/data_sources/model/DataRecord.ts

@ -118,7 +118,7 @@ export default class DataRecord<T extends DataRecordProps = DataRecordProps> ext
const paths = this.getPaths(prop);
const data = { dataSource, dataRecord: this, path: paths[0], options };
em.trigger(DataSourcesEvents.path, data);
em.trigger(`${DataSourcesEvents.path}:${dataSource.id}`, data);
em.trigger(`${DataSourcesEvents.pathSource}:${dataSource.id}`, data);
paths.forEach((path) => em.trigger(`${DataSourcesEvents.path}:${path}`, { ...data, path }));
}

9
packages/core/src/data_sources/types.ts

@ -86,10 +86,17 @@ export enum DataSourcesEvents {
/**
* @event `data:path` Data record path update.
* @example
* editor.on('data:path:SOURCE_ID:RECORD_ID:PROP_NAME', ({ dataSource, dataRecord, path }) => { ... });
* editor.on('data:path:SOURCE_ID.RECORD_ID.PROP_NAME', ({ dataSource, dataRecord, path }) => { ... });
*/
path = 'data:path',
/**
* @event `data:pathSource` Data record path update per source.
* @example
* editor.on('data:pathSource:SOURCE_ID', ({ dataSource, dataRecord, path }) => { ... });
*/
pathSource = 'data:pathSource:',
/**
* @event `data` Catch-all event for all the events mentioned above.
* @example

Loading…
Cancel
Save