@intuitionrobotics/thunderstorm
Version:
38 lines • 1.62 kB
JavaScript
import * as React from "react";
import {} from "react";
import { BaseComponent } from "../../core/BaseComponent.js";
import { MenuBuilder,
// resolveGenericPosition,
resolveRealPosition } from "./MenuModule.js";
import { BadImplementationException } from "@intuitionrobotics/ts-common";
import { Adapter } from "../../components/adapter/Adapter.js";
import {} from "./PopupMenu.js";
export class MenuAndButton extends BaseComponent {
ref = React.createRef();
state = {
isOpen: false,
over: false
};
__onMenuHide = (id) => {
if (this.props.id !== id)
return;
this.setState({ isOpen: false });
};
__onMenuDisplay = (menu) => {
if (this.props.id !== menu.id)
return;
this.setState({ isOpen: true });
};
render() {
return React.createElement("div", { className: 'clickable', onClick: this.open, style: { position: "relative" } },
React.createElement("div", { ref: this.ref, onMouseOver: _e => this.setState({ over: true }), onMouseOut: _e => this.setState({ over: false }) }, this.state.isOpen || this.state.over ? this.props.iconClosed : this.props.iconOpen));
}
open = () => {
if (!this.ref.current)
throw new BadImplementationException("Could not find image reference");
new MenuBuilder(this.props.adapter, this.props.resolvePosition ? this.props.resolvePosition(this.ref.current) : resolveRealPosition(this.ref.current), this.props.css && this.props.css)
.setId(this.props.id)
.show();
};
}
//# sourceMappingURL=MenuAndButton.js.map