import Tool from "./tool"; import { CONTEXT } from "../state"; import { CollectMenu, COLLECTION_KEY } from "./menus/collectmenu"; import CollectIcon from "../../images/tools/collect.png"; import { Editor } from "../components/editor"; export default class CollectTool extends Tool { constructor(key) { super("Collect", CollectIcon, key, new CollectMenu()); } onNodeClick(node) { if (Editor.globalState.itemsContext !== CONTEXT.node) { Editor.globalState.clearSelectedItems(); Editor.globalState.itemsContext = CONTEXT.node; } if (Editor.globalState.selectedItems.has(node)) { Editor.globalState.removeSelectedItem(node); } else { Editor.globalState.addSelectedItem(node); } this.menu.value(COLLECTION_KEY, Editor.globalState.selectedItems); } onLinkClick(link) { if (Editor.globalState.itemsContext !== CONTEXT.link) { Editor.globalState.clearSelectedItems(); Editor.globalState.itemsContext = CONTEXT.link; } if (Editor.globalState.selectedItems.has(link)) { Editor.globalState.removeSelectedItem(link); } else { Editor.globalState.addSelectedItem(link); } this.menu.value(COLLECTION_KEY, Editor.globalState.selectedItems); } onMenuChange(key, value) { if (key === COLLECTION_KEY && value === undefined) { Editor.globalState.clearSelectedItems(); this.menu.value(COLLECTION_KEY, []); } } }