aboutsummaryrefslogtreecommitdiff
path: root/src/client/views/TemplateMenu.tsx
diff options
context:
space:
mode:
authorFawn <fangrui_tong@brown.edu>2019-04-18 22:13:08 -0400
committerFawn <fangrui_tong@brown.edu>2019-04-18 22:13:08 -0400
commitfbf1662304e0b3f744827710d728602af4493f25 (patch)
treeaf6c901c62db2c1eb117c13c0d003284a456ad40 /src/client/views/TemplateMenu.tsx
parentc6ecd219f61811c3af9776ad8c08c2232db20dfd (diff)
changed menu to work like radio buttons:
Diffstat (limited to 'src/client/views/TemplateMenu.tsx')
-rw-r--r--src/client/views/TemplateMenu.tsx30
1 files changed, 16 insertions, 14 deletions
diff --git a/src/client/views/TemplateMenu.tsx b/src/client/views/TemplateMenu.tsx
index 7f670aec0..0c8ae7055 100644
--- a/src/client/views/TemplateMenu.tsx
+++ b/src/client/views/TemplateMenu.tsx
@@ -1,9 +1,8 @@
import { observable, computed, action } from "mobx";
import React = require("react");
-import { SelectionManager } from "../util/SelectionManager";
import { observer } from "mobx-react";
import './DocumentDecorations.scss';
-import { Templates, Template } from "./Templates";
+import { Template } from "./Templates";
import { DocumentView } from "./nodes/DocumentView";
const higflyout = require("@hig/flyout");
export const { anchorPoints } = higflyout;
@@ -34,19 +33,19 @@ export interface TemplateMenuProps {
export class TemplateMenu extends React.Component<TemplateMenuProps> {
@observable private _hidden: boolean = true;
- @observable private _showBase: boolean = true;
+ @observable private _useBase: boolean = true;
@observable private _templates: Map<Template, boolean> = this.props.templates;
@action
toggleTemplate = (event: React.ChangeEvent<HTMLInputElement>, template: Template): void => {
- if (event.target.checked) {
- this.props.doc.addTemplate(template);
- this._templates.set(template, true);
- } else {
- this.props.doc.removeTemplate(template);
- this._templates.set(template, false);
- }
+ this._useBase = false;
+ this.props.doc.toggleBase(false);
+ this.props.doc.changeTemplate(template);
+ this._templates.forEach((checked, temp) => {
+ this._templates.set(temp, false);
+ });
+ this._templates.set(template, true);
// const docs = view.props.ContainingCollectionView;
// const docs = view.props.Document.GetList<Document>(view.props.fieldKey, []);
@@ -59,9 +58,12 @@ export class TemplateMenu extends React.Component<TemplateMenuProps> {
}
@action
- toggleBase = (event: React.ChangeEvent<HTMLInputElement>): void => {
- this.props.doc.toggleBase(event.target.checked);
- this._showBase = !this._showBase;
+ toggleBase = (event: React.MouseEvent): void => {
+ this._useBase = true;
+ this.props.doc.toggleBase(true);
+ this._templates.forEach((checked, temp) => {
+ this._templates.set(temp, false);
+ });
}
@action
@@ -79,7 +81,7 @@ export class TemplateMenu extends React.Component<TemplateMenuProps> {
<div className="templating-menu" >
<div className="templating-button" onClick={() => this.toggleTemplateActivity()}>T</div>
<ul id="template-list" style={{ display: this._hidden ? "none" : "block" }}>
- <li><input type="checkbox" onChange={(event) => this.toggleBase(event)} defaultChecked={true} />Base layout</li>
+ <li><input type="checkbox" onClick={(event) => this.toggleBase(event)} checked={this._useBase} />Base layout</li>
{templateMenu}
</ul>
</div>