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