From 6e66ab2ab9b5b6f988230aac83ac712b43ccfe3a Mon Sep 17 00:00:00 2001 From: Nathan-SR <144961007+Nathan-SR@users.noreply.github.com> Date: Sun, 11 May 2025 01:30:31 -0400 Subject: working on firefly integration --- .../DocCreatorMenu/Menu/TemplateEditingWindow.tsx | 42 +++++++++++++---- .../DocCreatorMenu/Menu/TemplatePreviewBox.tsx | 30 +++++++++++- .../DocCreatorMenu/Menu/TemplatePreviewGrid.tsx | 55 ++++++++++++++++++++++ .../Menu/TemplatesSidescrollDisplay.tsx | 50 -------------------- 4 files changed, 117 insertions(+), 60 deletions(-) create mode 100644 src/client/views/nodes/DataVizBox/DocCreatorMenu/Menu/TemplatePreviewGrid.tsx delete mode 100644 src/client/views/nodes/DataVizBox/DocCreatorMenu/Menu/TemplatesSidescrollDisplay.tsx (limited to 'src/client/views/nodes/DataVizBox/DocCreatorMenu/Menu') diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Menu/TemplateEditingWindow.tsx b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Menu/TemplateEditingWindow.tsx index 08a48ccb9..f34b7efcf 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Menu/TemplateEditingWindow.tsx +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Menu/TemplateEditingWindow.tsx @@ -7,13 +7,15 @@ import { Doc, returnEmptyDoclist } from "../../../../../../fields/Doc"; import { DefaultStyleProvider } from "../../../../StyleProvider"; import { DocumentView, DocumentViewInternal } from "../../../DocumentView"; import { DocCreatorMenu } from "../DocCreatorMenu"; -import { TemplateSidescrollView } from "./TemplatesSidescrollDisplay"; +import { TemplatePreviewGrid } from "./TemplatePreviewGrid"; import { observer } from "mobx-react"; import { Transform } from "../../../../../util/Transform"; import { Template } from "../Template"; import { TemplateMenuAIUtils } from "../Backend/TemplateMenuAIUtils"; import { ObservableReactComponent } from "../../../../ObservableReactComponent"; import { IDisposer } from "mobx-utils"; +import { ImageField } from "../../../../../../fields/URLField"; +import { TemplatePreviewBoxProps } from "./TemplatePreviewBox"; interface TemplateEditingWindowProps { menu: DocCreatorMenu; @@ -28,8 +30,10 @@ export class TemplateEditingWindow extends ObservableReactComponent @@ -57,15 +61,24 @@ export class TemplateEditingWindow extends ObservableReactComponent { + this._props.menu._variations.forEach(variation => { + variation.setImageAsBackground('https://www.onthegotours.com/repository/Great-Wall-New-Pic-228551391689622.jpg', true) + }); + } + get fireflyVariationsTab() { return ( <> - + ) => {component.forceUpdate();}]} />
@@ -77,7 +90,21 @@ export class TemplateEditingWindow extends ObservableReactComponent diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Menu/TemplatePreviewBox.tsx b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Menu/TemplatePreviewBox.tsx index e63be8f9c..a7270e540 100644 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Menu/TemplatePreviewBox.tsx +++ b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Menu/TemplatePreviewBox.tsx @@ -11,8 +11,10 @@ import { emptyFunction } from "../../../../../../Utils"; import { returnEmptyFilter, returnFalse } from "../../../../../../ClientUtils"; import { Transform } from "../../../../../util/Transform"; import { DefaultStyleProvider } from "../../../../StyleProvider"; -import { returnEmptyDoclist } from "../../../../../../fields/Doc"; +import { Doc, returnEmptyDoclist } from "../../../../../../fields/Doc"; import { IDisposer } from "mobx-utils"; +import { ImageField } from "../../../../../../fields/URLField"; +import { ImageCast } from "../../../../../../fields/Types"; export interface TemplatePreviewBoxProps { template: Template; @@ -24,12 +26,34 @@ export interface TemplatePreviewBoxProps { export class TemplatePreviewBox extends ObservableReactComponent { private previewWindow: HTMLDivElement | null = null; + // private icon: ImageField | undefined = undefined; setContainerRef: React.LegacyRef = (node) => { this.previewWindow = node; this.forceUpdate(); } + // componentDidMount(): void { + // console.log('mounted') + // setTimeout(() => { + // const docView = DocumentView.getDocumentView(this.doc); + // if (docView) { + // console.log('docview found') + // docView.ComponentView?.updateIcon?.(); + // setTimeout(() => { + // console.log('componentview found: ', docView.ComponentView) + // this.icon = ImageCast(docView.Document.icon); + // console.log('icon is:', this.icon, ' from: ', docView.Document.icon); + // this.forceUpdate(); + // }, 5000); + // } + // }, 1000); + // } + + get doc() { + return this.props.template.getRenderedDoc() as Doc; + } + render() { const template = this.props.template; @@ -57,8 +81,10 @@ export class TemplatePreviewBox extends ObservableReactComponent this.props.menu.setUpButtonClick(e, () => this.props.rightButtonOpts![1](template))}> : null } + {/* { this.icon ? + */} any]; + previewBoxLeftButtonOpts?: [string, (...args: any) => any]; + previewBoxRightButtonOpts?: [string, (...args: any) => any]; + setupButtonClick: (e: React.PointerEvent, func: () => void) => void; +} + +@observer +export class TemplatePreviewGrid extends ObservableReactComponent { + + render() { + return ( +
+
+
{this.props.title}
+ {this._props.optionsButtonOpts ? () : null} +
+
+ {this._props.loading ? + (
+ +
) + : this.props.templates.map(template => ( + { this.props.menu.setExpandedView(template); this.forceUpdate(); }]} + rightButtonOpts={["plus", (template: Template) => {}]} + /> + ))} +
+
+ ); + } +} \ No newline at end of file diff --git a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Menu/TemplatesSidescrollDisplay.tsx b/src/client/views/nodes/DataVizBox/DocCreatorMenu/Menu/TemplatesSidescrollDisplay.tsx deleted file mode 100644 index 1f6eed9e5..000000000 --- a/src/client/views/nodes/DataVizBox/DocCreatorMenu/Menu/TemplatesSidescrollDisplay.tsx +++ /dev/null @@ -1,50 +0,0 @@ -import { Colors } from "@dash/components/src"; -import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; -import { action, observable, runInAction } from "mobx"; -import React from "react"; -import ReactLoading from "react-loading"; -import { Doc } from "../../../../../../fields/Doc"; -import { StrCast } from "../../../../../../fields/Types"; -import { ObservableReactComponent } from "../../../../ObservableReactComponent"; -import { Template } from "../Template"; -import { observer } from "mobx-react"; -import { DocCreatorMenu } from "../DocCreatorMenu"; -import { TemplatePreviewBox } from "./TemplatePreviewBox"; - -export interface SuggestedTemplatesProps { - menu: DocCreatorMenu; - templates: Template[]; - title: string; - previewBoxLeftButtonOpts?: [string, () => any]; - previewBoxRightButtonOpts?: [string, () => any]; - setupButtonClick: (e: React.PointerEvent, func: () => void) => void; -} - -@observer -export class TemplateSidescrollView extends ObservableReactComponent { - - @observable _GPTLoading: boolean = false; - - render() { - return ( -
-
-
{this.props.title}
- -
-
400 ? 'center' : '' }}> - {this.props.templates.map(template => ( - { this.props.menu.setExpandedView(template); this.forceUpdate(); }]} - rightButtonOpts={["plus", (template: Template) => {}]} - /> - ))} -
-
- ); - } -} \ No newline at end of file -- cgit v1.2.3-70-g09d2