From bbaf25c10a3e1fcb36c75d8dedc825a955eab369 Mon Sep 17 00:00:00 2001
From: Bob Zeleznik <zzzman@gmail.com>
Date: Wed, 29 Jan 2020 23:01:20 -0500
Subject: switched icons over to templates. a bunch of template fixes for
 working with textboxes as templates.

---
 src/client/views/nodes/FontIconBox.tsx | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)

(limited to 'src/client/views/nodes/FontIconBox.tsx')

diff --git a/src/client/views/nodes/FontIconBox.tsx b/src/client/views/nodes/FontIconBox.tsx
index 2433251b3..a191ac4f4 100644
--- a/src/client/views/nodes/FontIconBox.tsx
+++ b/src/client/views/nodes/FontIconBox.tsx
@@ -5,10 +5,11 @@ import { createSchema, makeInterface } from '../../../new_fields/Schema';
 import { DocComponent } from '../DocComponent';
 import './FontIconBox.scss';
 import { FieldView, FieldViewProps } from './FieldView';
-import { StrCast } from '../../../new_fields/Types';
+import { StrCast, Cast } from '../../../new_fields/Types';
 import { Utils } from "../../../Utils";
 import { runInAction, observable, reaction, IReactionDisposer } from 'mobx';
 import { Doc } from '../../../new_fields/Doc';
+import { ContextMenu } from '../ContextMenu';
 const FontIconSchema = createSchema({
     icon: "string"
 });
@@ -32,13 +33,25 @@ export class FontIconBox extends DocComponent<FieldViewProps, FontIconDocument>(
                 }
             }, { fireImmediately: true });
     }
+
+    showTemplate = (): void => {
+        const dragFactory = Cast(this.props.Document.dragFactory, Doc, null);
+        dragFactory && this.props.addDocTab(dragFactory, undefined, "onRight");
+    }
+
+    specificContextMenu = (): void => {
+        const cm = ContextMenu.Instance;
+        cm.addItem({ description: "Show Template", event: this.showTemplate, icon: "tag" });
+    }
+
     componentWillUnmount() {
-        this._backgroundReaction && this._backgroundReaction();
+        this._backgroundReaction?.();
     }
+
     render() {
         const referenceDoc = (this.props.Document.dragFactory instanceof Doc ? this.props.Document.dragFactory : this.props.Document);
         const referenceLayout = Doc.Layout(referenceDoc);
-        return <button className="fontIconBox-outerDiv" title={StrCast(this.props.Document.title)} ref={this._ref}
+        return <button className="fontIconBox-outerDiv" title={StrCast(this.props.Document.title)} ref={this._ref} onContextMenu={this.specificContextMenu}
             style={{
                 background: StrCast(referenceLayout.backgroundColor),
                 boxShadow: this.props.Document.ischecked ? `4px 4px 12px black` : undefined
-- 
cgit v1.2.3-70-g09d2

