UNPKG

@websolutespa/payload-plugin-bowl

Version:

Bowl PayloadCms plugin of the BOM Repository

67 lines (66 loc) 2.11 kB
import { EventEmitter } from './EventEmitter'; export class DataTreeProvider { data; onDidChangeTreeDataEmitter = new EventEmitter(); onSetData; constructor(items, onSetData){ this.data = { items: { ...items } }; this.onSetData = onSetData; } async getTreeItem(itemId) { // console.log('getTreeItem', itemId); return this.data.items[itemId]; } async onChangeItemChildren(itemId, children) { // console.log('onChangeItemChildren', itemId); /* const items = { ...this.data.items }; const item = { ...items[itemId] }; item.children = [...children]; items[itemId] = item; this.data = { items }; console.log(this.data); */ this.data.items[itemId].children = children; this.onItemsDidChange_(this.data.items); this.onDidChangeTreeDataEmitter.emit([ itemId ]); } async onRenameItem(item, name) { // console.log('onRenameItem', item, name); if (typeof this.onSetData === 'function') { /* const items = { ...this.data.items }; const newItem = { ...item }; items[item.index] = this.onSetData(newItem, { ...newItem.data, title: name }); this.data = { items }; */ this.data.items[item.index] = this.onSetData(item, { ...item.data, title: name }); this.onItemsDidChange_(this.data.items); // this.onDidChangeTreeDataEmitter.emit(item.index); } } onDidChangeTreeData(callback) { // console.log('onDidChangeTreeData', callback); const handlerId = this.onDidChangeTreeDataEmitter.on((payload)=>callback(payload)); return { dispose: ()=>this.onDidChangeTreeDataEmitter.off(handlerId) }; } onItemsDidChange_(items) { console.log('onItemsDidChange_', items); } onItemsDidChange(callback) { this.onItemsDidChange_ = callback; } } //# sourceMappingURL=DataTreeProvider.js.map