react-data-menu
Version:
Smart data-driven menu rendered in an overlay
25 lines (21 loc) • 914 B
JavaScript
import _ from 'lodash';
import HoverData from './hoverData';
import { ITEM_ID_PREFIX } from './../components/MenuPopup';
import { POPUP_ID_PREFIX } from './../components/Menu';
export default class HoverDataBuilder {
static build(popups, ray) {
var data = {},
popupElement = ray.intersectsId(POPUP_ID_PREFIX),
itemElement = ray.intersectsId(ITEM_ID_PREFIX),
hoverData, popupId, popupIndex, itemId, itemIndex;
if (popupElement && itemElement) {
popupId = popupElement.id;
popupIndex = parseInt(popupId.split(POPUP_ID_PREFIX)[1]);
itemId = itemElement.id;
itemIndex = parseInt(itemId.split(ITEM_ID_PREFIX)[1]);
data = popups[popupIndex].items[itemIndex];
hoverData = new HoverData(popupId, itemId, popupIndex, itemIndex, itemElement, data);
}
return hoverData;
}
}