import { action, makeObservable, observable } from "mobx"; import { observer } from "mobx-react"; import React from "react"; import { Button, Panel } from "react-bootstrap"; import "../css/supp.css"; // @ts-ignore import acImg from "../images/edges/activates.svg"; // @ts-ignore import bindImg from "../images/edges/binds.svg"; // @ts-ignore import indImg from "../images/edges/induces.svg"; // @ts-ignore import inhImg from "../images/edges/inhibits.svg"; // @ts-ignore import repImg from "../images/edges/represses.svg"; import PathwayActions from "../utils/PathwayActions"; import { EModalType } from "./react-pathway-mapper"; interface ISideBarProps{ pathwayActions: PathwayActions; setActiveEdgeHandler: Function; handleOpen: Function; } @observer export default class Sidebar extends React.Component{ @observable activeEdge: number = -1; constructor(props: ISideBarProps){ super(props); makeObservable(this); props.setActiveEdgeHandler(this.setActiveEdge); } addEdge(edgeIndex: number){ if(edgeIndex === this.activeEdge){ this.setActiveEdge(-1); this.props.pathwayActions.addEdge(-1); return; } this.setActiveEdge(edgeIndex); this.props.pathwayActions.addEdge(edgeIndex); } @action.bound setActiveEdge(edgeIndex: number){ this.activeEdge = edgeIndex; } render(){ const edgeTypes = ["Activates", "Inhibits", "Induces", "Represses", "Binds"]; const edgeImgs = [acImg, inhImg, indImg, repImg, bindImg]; const nodeIds = ["simpleNodeDiv", "familyNodeDiv", "complexNodeDiv", "compartmentNodeDiv", "processNodeDiv"]; return(
Network
Node Palette { nodeIds.map((id) => { return (
); }) }
Interaction Palette
{ edgeTypes.map((edgeType: string, i: number) => { return (); }) }
); } }