diff options
| author | Fawn <fangrui_tong@brown.edu> | 2019-04-18 22:13:08 -0400 |
|---|---|---|
| committer | Fawn <fangrui_tong@brown.edu> | 2019-04-18 22:13:08 -0400 |
| commit | fbf1662304e0b3f744827710d728602af4493f25 (patch) | |
| tree | af6c901c62db2c1eb117c13c0d003284a456ad40 /src/client/views/TemplateMenu.tsx | |
| parent | c6ecd219f61811c3af9776ad8c08c2232db20dfd (diff) | |
changed menu to work like radio buttons:
Diffstat (limited to 'src/client/views/TemplateMenu.tsx')
| -rw-r--r-- | src/client/views/TemplateMenu.tsx | 30 |
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> |
