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"; import { IconProp } from "@fortawesome/fontawesome-svg-core"; export interface SuggestedTemplatesProps { menu: DocCreatorMenu; loading?: boolean; templates: Template[]; title: string; optionsButtonOpts?: [IconProp, (...args: any) => any]; previewBoxLeftButtonOpts?: [IconProp, (...args: any) => any]; previewBoxRightButtonOpts?: [IconProp, (...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={this._props.previewBoxRightButtonOpts} /> ))}
); } }