import React from 'react';
import DropDownBase from './DropDownBase.js';
export default class DropDownMenu extends DropDownBase
{
state = { items: this.props.items }
render()
{
let sel = this.state.selectedItem;
return
{this.state.items.map((i, index) => (i.split
?
:
{i.hotkey ?
{i.hotkey}
: null}
{i.icon ?
: null}
{i.text}
))}
}
onMouseOver = (ev) =>
{
let t = ev.target;
while ((t && t != this.refs.dd) && (!t.className || t.className.substr(0, 4) != 'item'))
t = t.parentNode;
if (t && t != this.refs.dd)
this.setState({ selectedItem: parseInt(t.getAttribute('data-index')) });
}
onKeyDown = (ev) =>
{
if (ev.keyCode == 40 || ev.keyCode == 38)
{
let a = ev.keyCode == 40 ? 1 : this.state.items.length-1;
let sel = this.state.selectedItem;
do
{
sel = ((sel+a) % this.state.items.length);
}
while (this.state.items[sel].split && sel != this.state.selectedItem);
this.setState({ selectedItem: sel });
}
else if (ev.keyCode == 10 || ev.keyCode == 13)
this.clickItem();
ev.preventDefault();
ev.stopPropagation();
}
clickItem = (ev) =>
{
}
myOnClick = (ev) =>
{
if (ev.target.getAttribute('data-index'))
this.clickItem();
this.onClick(ev);
}
}