import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { action, observable, reaction, runInAction } from "mobx"; import React from "react"; import { returnFalse, returnEmptyFilter, returnTrue } from "../../../../../../ClientUtils"; import { emptyFunction } from "../../../../../../Utils"; import { Doc, returnEmptyDoclist } from "../../../../../../fields/Doc"; import { DefaultStyleProvider } from "../../../../StyleProvider"; import { DocumentView, DocumentViewInternal } from "../../../DocumentView"; import { DocCreatorMenu } from "../DocCreatorMenu"; 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; template: Template; setupButtonClick: (e: React.PointerEvent, func: () => void) => void; } @observer export class TemplateEditingWindow extends ObservableReactComponent { private fireflyPrompt: string = 'Use this template to generate an empty baseball card template.'; private previewWindow: HTMLDivElement | null = null; private _disposers: { [name: string]: IDisposer } = {}; @observable _loading: boolean = false; @observable _variationsTabOpen: boolean = false; @observable _variationURLs: string[] = []; @observable _variations: Template[] = []; componentDidMount(): void { this._disposers.windowDimensions = reaction(() => this._props.menu._resizing, () => { this.forceUpdate() }, { fireImmediately: true } ); } componentWillUnmount() { Object.values(this._disposers).forEach(disposer => disposer?.()); } setContainerRef: React.LegacyRef = (node) => { this.previewWindow = node; this.forceUpdate(); } @action setVariationTab = (open: boolean) => { this._variationsTabOpen = open; if (this.previewWindow && open) { this.previewWindow.style.height = String(Number(this.previewWindow.clientHeight) * .6); } else if (this.previewWindow && !open) { this.previewWindow.style.height = String(Number(this.previewWindow.clientHeight) * 5/3); } } func = () => { this._props.menu._variations.forEach(variation => { variation.setImageAsBackground('https://www.onthegotours.com/repository/Great-Wall-New-Pic-228551391689622.jpg', true) }); } get fireflyVariationsTab() { return ( <>
{this.forceUpdate();}]} />