From 691fc130de706c691a42f7e87688c14102016ccc Mon Sep 17 00:00:00 2001 From: Nathan-SR <144961007+Nathan-SR@users.noreply.github.com> Date: Tue, 29 Oct 2024 04:02:29 -0400 Subject: starting to integrate refactor with docreatormenu functionality --- .../DataVizBox/DocCreatorMenu/TemplateManager.tsx | 23 ++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/client/views/nodes/DataVizBox/DocCreatorMenu/TemplateManager.tsx (limited to 'src/client/views/nodes/DataVizBox/DocCreatorMenu/TemplateManager.tsx') diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/TemplateManager.tsx b/src/client/views/nodes/DataVizBox/DocCreatorMenu/TemplateManager.tsx new file mode 100644 index 000000000..890bc6f73 --- /dev/null +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/TemplateManager.tsx @@ -0,0 +1,23 @@ +import { Col } from "./DocCreatorMenu"; +import { FieldSettings } from "./FieldTypes/Field"; +import { Template } from "./Template"; +import { TemplateLayouts } from "./TemplateBackend"; + +export class TemplateManager { + + templates: Template[] = []; + + constructor(templateSettings: FieldSettings[]) { + this.templates = this.initializeTemplates(templateSettings); + } + + initializeTemplates = (templateSettings: FieldSettings[]): Template[] => { + const initializedTemplates: Template[] = []; + templateSettings.forEach(settings => initializedTemplates.push(new Template(settings))); + return initializedTemplates; + } + + getValidTemplates = (cols: Col[]): Template[] => { + return this.templates.filter(template => template.isValidTemplate(cols)); + } +} \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 58e97fd9a8c85c7e4df75aed17d914498680c190 Mon Sep 17 00:00:00 2001 From: Nathan-SR <144961007+Nathan-SR@users.noreply.github.com> Date: Tue, 29 Oct 2024 16:25:30 -0400 Subject: no compile errors but probably 100 logical ones --- .../DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx | 131 ++++++--------------- .../DocCreatorMenu/FieldTypes/DynamicField.tsx | 5 + .../DataVizBox/DocCreatorMenu/FieldTypes/Field.tsx | 2 + .../DocCreatorMenu/FieldTypes/StaticField.tsx | 5 + .../DataVizBox/DocCreatorMenu/TemplateManager.tsx | 12 ++ 5 files changed, 61 insertions(+), 94 deletions(-) (limited to 'src/client/views/nodes/DataVizBox/DocCreatorMenu/TemplateManager.tsx') diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx b/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx index 36264f886..46266883f 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx @@ -59,7 +59,7 @@ export class DocCreatorMenu extends ObservableReactComponent { @observable _templateDocs: Doc[] = []; @observable _selectedTemplate: Doc | undefined = undefined; - @observable _columns: Col[] = []; + @observable _userCreatedColumns: Col[] = []; @observable _selectedCols: { title: string; type: string; desc: string }[] | undefined = []; @observable _layout: { type: LayoutType; yMargin: number; xMargin: number; columns?: number; repeat: number } = { type: LayoutType.GRID, yMargin: 0, xMargin: 0, repeat: 0 }; @@ -176,7 +176,7 @@ export class DocCreatorMenu extends ObservableReactComponent { return col; }) - .concat(this._columns); + .concat(this._userCreatedColumns); } @computed get canMakeDocs() { @@ -486,15 +486,15 @@ export class DocCreatorMenu extends ObservableReactComponent { }; @action addField = () => { - const newFields: Col[] = this._columns.concat([{ title: '', type: TemplateFieldType.UNSET, desc: '', sizes: [] }]); - this._columns = newFields; + const newFields: Col[] = this._userCreatedColumns.concat([{ title: '', type: TemplateFieldType.UNSET, desc: '', sizes: [] }]); + this._userCreatedColumns = newFields; }; @action removeField = (field: { title: string; type: string; desc: string }) => { if (this._dataViz?.axes.includes(field.title)) { this._dataViz.selectAxes(this._dataViz.axes.filter(col => col !== field.title)); } else { - const toRemove = this._columns.filter(f => f === field); + const toRemove = this._userCreatedColumns.filter(f => f === field); if (!toRemove) return; if (toRemove.length > 1) { @@ -503,10 +503,10 @@ export class DocCreatorMenu extends ObservableReactComponent { } } - if (this._columns.length === 1) { - this._columns = []; + if (this._userCreatedColumns.length === 1) { + this._userCreatedColumns = []; } else { - this._columns.splice(this._columns.indexOf(toRemove[0]), 1); + this._userCreatedColumns.splice(this._userCreatedColumns.indexOf(toRemove[0]), 1); } } }; @@ -573,7 +573,7 @@ export class DocCreatorMenu extends ObservableReactComponent { * @param assignments a list of template field numbers (from top to bottom) and their assigned columns from the linked dataviz * @returns a doc containing the fully rendered template */ - fillPresetTemplate = async (template: Template, assignments: { [field: string]: Col }): Promise => { + applyGPTContentToTemplate = async (template: Template, assignments: { [field: string]: Col }): Promise