aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx')
-rw-r--r--src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx36
1 files changed, 32 insertions, 4 deletions
diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx b/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx
index 3cf9baa2c..de345a335 100644
--- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx
+++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/DocCreatorMenu.tsx
@@ -33,6 +33,7 @@ import { TemplateFieldSize, TemplateFieldType, TemplateLayouts } from './Templat
import { TemplateManager } from './TemplateManager';
import { DrawingFillHandler } from '../../../smartdraw/DrawingFillHandler';
import { CgPathIntersect } from 'react-icons/cg';
+import { StaticContentField } from './TemplateFieldTypes/StaticContentField';
export enum LayoutType {
FREEFORM = 'Freeform',
@@ -649,6 +650,17 @@ export class DocCreatorMenu extends ObservableReactComponent<DocCreateMenuProps>
const field = template.getFieldByID(Number(fieldID));
field.setContent(col.defaultContent ?? '', col.type === TemplateFieldType.VISUAL ? ViewType.IMG : ViewType.TEXT);
field.setTitle(col.title);
+ this._conditions.filter(c => c.field === field.getTitle()).forEach(conditional => {
+ if (field.getContent() === conditional.condition){
+ if (conditional.target === 'self'){
+ field.renderedDoc![conditional.attribute] = conditional.value;
+ (field.settings.opts as any)[conditional.attribute] = conditional.value;
+ } else if (conditional.target === 'template'){
+ template._mainField!.renderedDoc![conditional.attribute] = conditional.value;
+ (template._mainField!.settings.opts as any)[conditional.attribute] = conditional.value;
+ }
+ }
+ })
} else {
a[Number(fieldID)] = this.getColByTitle(colTitle);
}
@@ -676,7 +688,6 @@ export class DocCreatorMenu extends ObservableReactComponent<DocCreateMenuProps>
} else {
this._dataViz?.updateColDefaults();
- console.log('field infos are: ', this.fieldsInfos)
templates.push(...this.templateManager.getValidTemplates(this.fieldsInfos));
const assignments = await this.assignColsToFields(templates, this.fieldsInfos);
@@ -778,7 +789,23 @@ export class DocCreatorMenu extends ObservableReactComponent<DocCreateMenuProps>
.filter(title => title)
.forEach(title => {
const field = templateCopy.getFieldByTitle(title);
- if (field !== undefined) field.setContent(content[title], field.viewType);
+ if (field !== undefined) {
+ field.setContent(content[title], field.viewType);
+ console.log('content set')
+ this._conditions.filter(c => c.field === title).forEach(conditional => {
+ console.log('in conditional')
+ if (content[title] === conditional.condition){
+ if (conditional.target === 'self'){
+ field.renderedDoc![conditional.attribute] = conditional.value;
+ (field.settings.opts as any)[conditional.attribute] = conditional.value;
+ } else if (conditional.target === 'template'){
+ console.log('setting', conditional.attribute, 'to: ', conditional.value)
+ templateCopy._mainField!.renderedDoc![conditional.attribute] = conditional.value;
+ (templateCopy._mainField!.settings.opts as any)[conditional.attribute] = conditional.value;
+ }
+ }
+ })
+ }
});
const gptFunc = (type: TemplateFieldType) => (type === TemplateFieldType.VISUAL ? this.renderGPTImageCall : this.renderGPTTextCall);
@@ -1337,7 +1364,7 @@ export class DocCreatorMenu extends ObservableReactComponent<DocCreateMenuProps>
}
get dashboardContents() {
- const conditionForm = (title: String, parameters?: Conditional) => {
+ const conditionForm = (title: string, parameters?: Conditional) => {
const params: Conditional = parameters ?? this._currEditingConditional;
@@ -1358,7 +1385,7 @@ export class DocCreatorMenu extends ObservableReactComponent<DocCreateMenuProps>
placeholder='value'
defaultValue={params.condition}
/>
- <div className='form-row-plain-text'>Then</div>
+ <div className='form-row-plain-text'>then</div>
<div className="operator-options-dropdown">
<span className="operator-dropdown-current">{params.target ?? 'self'}</span>
<div className='operator-dropdown-option' onPointerDown={() => {params.target = 'self'}}>{'self'}</div>
@@ -1380,6 +1407,7 @@ export class DocCreatorMenu extends ObservableReactComponent<DocCreateMenuProps>
</div>
<div className='form-action-button' onPointerDown={e => this.setUpButtonClick(e, runInAction(() => () => {
if (this._currEditingConditional === params) {
+ params.field = title;
this._conditions.push(params);
this._currEditingConditional = {} as Conditional;
} else {