Skip to content
Snippets Groups Projects
editor.tsx 1.13 KiB
Newer Older
  • Learn to ignore specific revisions
  • import React from "react";
    import { Tool } from "../structures/editor/tools/tool";
    import { ToolBar } from "./toolbar";
    
    export class Editor extends React.Component {
        state: {
            currentTool: Tool;
            previousTool: Tool;
        };
    
        constructor(props: any) {
            super(props);
        }
    
        /**
         * Sets current tool. Select events not triggered if already selected.
         * @param tool New tool to select.
         */
        public setTool(tool: Tool) {
            if (this.state.currentTool == tool) {
                return;
            }
    
            this.setState({ currentTool: tool });
        }
    
        /**
         * If exists, sets previously selected tool as current tool.
         */
        public setPreviousTool() {
            if (this.state.previousTool === undefined) {
                return;
            }
    
            this.setTool(this.state.previousTool);
        }
    
        /**
         * @returns Tool that is currently selected.
         */
        public getCurrentTool(): Tool {
            return this.state.currentTool;
        }
    
        render(): React.ReactNode {
            return (
                <div id="ks-editor">
                    <ToolBar editor={this}></ToolBar>
                </div>
            );
        }
    }