import React = require("react"); import { observable, action } from "mobx"; export interface OriginalMenuProps { description: string; event: (e: React.MouseEvent) => void; } export interface SubmenuProps { description: string; subitems: OriginalMenuProps[]; } export type ContextMenuProps = OriginalMenuProps | SubmenuProps; export class ContextMenuItem extends React.Component { @observable private _items: Array = [{ description: "test", event: (e: React.MouseEvent) => e.preventDefault() }]; @observable private _pageX: number = 0; @observable private _pageY: number = 0; @observable private _display: string = "none"; @observable private overItem = false; render() { if ("event" in this.props) { return (
{this.props.description}
) } else { let submenu = null; if (this.overItem) { submenu = (
{this._items.map(prop => { return })}
) } return (
this.overItem = true)} onMouseLeave={action(() => this.overItem = false)}>
{this.props.description}
{submenu}
) } } }