From dd27b5aaafa2a6976e7745d57da6521159da2a83 Mon Sep 17 00:00:00 2001 From: Nathan-SR <144961007+Nathan-SR@users.noreply.github.com> Date: Tue, 5 Nov 2024 05:28:18 -0500 Subject: fixed a bunch of slowdowns --- .../DataVizBox/DocCreatorMenu/DocCreatorMenu.scss | 1 + .../DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx | 137 ++++++++++----------- 2 files changed, 63 insertions(+), 75 deletions(-) (limited to 'src') diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.scss b/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.scss index 5b9586259..7858adc4c 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.scss +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.scss @@ -350,6 +350,7 @@ border: 0px; padding: 0px; font-size: 15px; + z-index: 1000; &.right { position: absolute; diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx b/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx index fcf237e02..f075dc737 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx @@ -66,10 +66,10 @@ export class DocCreatorMenu extends ObservableReactComponent { @observable _layoutPreview: boolean = true; @observable _layoutPreviewScale: number = 1; @observable _savedLayouts: DataVizTemplateLayout[] = []; - @observable _expandedPreview: { icon: ImageField; doc: Doc } | undefined = undefined; + @observable _expandedPreview: Doc | undefined = undefined; @observable _suggestedTemplates: Template[] = []; - @observable _suggestedTemplateDocs + @observable _suggestedTemplatePreviews: {doc: Doc, template: Template}[] = []; @observable _GPTOpt: boolean = false; @observable _userPrompt: string = ''; @observable _callCount: number = 0; @@ -113,8 +113,16 @@ export class DocCreatorMenu extends ObservableReactComponent { @action setTemplateDocs = (docs: Doc[]) => { this._templateDocs = docs.map(doc => (doc.annotationOn ? DocCast(doc.annotationOn) : doc)); }; + @action updateTemplatePreviews = (templates: Template[]) => { + this._suggestedTemplatePreviews = templates.map(template => { + const doc = template.mainField.renderedDoc(); + const wrapper: Doc = Docs.Create.FreeformDocument([doc], { _height: NumListCast(doc._height)[0], _width: NumListCast(doc._width)[0], title: ''}); + return {doc: wrapper, template: template}; + }); + } @action setSuggestedTemplates = (templates: Template[]) => { this._suggestedTemplates = templates; + this.updateTemplatePreviews(templates); }; @computed get docsToRender() { @@ -157,45 +165,6 @@ export class DocCreatorMenu extends ObservableReactComponent { return StrListCast(this._dataViz?.layoutDoc._dataViz_axes); } - @computed get selectedTemplateDocs(): {doc: React.JSX.Element, template: Template}[] { - const docs: {doc: Doc, template: Template}[] = this._suggestedTemplates?.map(template => { return {doc: template.mainField.renderedDoc(), template: template}}); - const docPreviews: {doc: Doc, template: Template}[] = docs.map(info => - {return {doc: Docs.Create.FreeformDocument([info.doc], { _height: NumListCast(info.doc._height)[0], _width: NumListCast(info.doc._width)[0], title: ''}), template: info.template} - }); - const renderedComponents = docPreviews.map(info => - {return {doc: Cast(info.doc.childLayoutTemplate, Doc, null)} - isContentActive={emptyFunction} - isAnyChildContentActive={() => true} - select={emptyFunction} - isSelected={returnFalse} - fieldKey={Doc.LayoutFieldKey(info.doc)} - addDocument={returnFalse} - moveDocument={returnFalse} - removeDocument={returnFalse} - PanelWidth={() => 100} - PanelHeight={() => 100} - ScreenToLocalTransform={() => new Transform(-this._pageX - 5,-this._pageY - 35, 1)} - renderDepth={5} - whenChildContentsActiveChanged={emptyFunction} - focus={emptyFunction} - styleProvider={DefaultStyleProvider} - addDocTab={this._props.addDocTab} - // eslint-disable-next-line no-use-before-define - pinToPres={() => undefined} - childFilters={returnEmptyFilter} - childFiltersByRanges={returnEmptyFilter} - searchFilterDocs={returnEmptyDoclist} - fitContentsToBox={returnTrue} - xPadding={0} - yPadding={0} - />, template: info.template} - }); - return renderedComponents; - } - @computed get fieldsInfos(): Col[] { const colInfo = this._dataViz?.colsInfo; return this.selectedFields @@ -274,14 +243,6 @@ export class DocCreatorMenu extends ObservableReactComponent { componentDidMount() { document.addEventListener('pointerdown', this.onPointerDown, true); document.addEventListener('pointerup', this.onPointerUp); - this._disposers.templates = reaction( - () => this._templateDocs.slice(), - docs => this.updateIcons(docs) - ); - this._disposers.gpt = reaction( - () => this._suggestedTemplates.slice(), - templates => this.updateIcons(templates.map(t => t.doc)) - ); //this._disposers.columns = reaction(() => this._dataViz?.layoutDoc._dataViz_axes, () => {this.generateTemplates('')}) this._disposers.lightbox = reaction( () => LightboxView.LightboxDoc(), @@ -302,11 +263,6 @@ export class DocCreatorMenu extends ObservableReactComponent { document.removeEventListener('pointerup', this.onPointerUp); } - updateIcons = (docs: Doc[]) => { - console.log('called') - docs.map(this.getIcon); - }; - @action updateSelectedCols = (cols: string[]) => { this._selectedCols; @@ -450,7 +406,7 @@ export class DocCreatorMenu extends ObservableReactComponent { testTemplate = async () => { - console.log(this.templateManager.templates) + //console.log(this.templateManager.templates) this.forceUpdate(); @@ -723,8 +679,6 @@ export class DocCreatorMenu extends ObservableReactComponent { const cols = this.fieldsInfos; const templates = this.templateManager.getValidTemplates(cols); - console.log('templates: ', templates) - const assignments: [Template, { [field: number]: Col }][] = await this.assignColsToFields(templates, cols); const renderedTemplatePromises: Promise