monday-ui-react-core
Version:
Official monday.com UI resources for application development in React.js
3 lines (2 loc) • 1.68 kB
JavaScript
import e,{forwardRef as t,useCallback as n}from"react";import o from"classnames";import{getTestId as r}from"../../../tests/testIds.js";import{ComponentDefaultTestId as u}from"../../../tests/constants.js";import s from"./TableRowMenu.module.scss.js";import m from"../../MenuButton/MenuButton.js";import i from"../../Menu/Menu/Menu.js";import"../../Menu/MenuItem/MenuItem.js";import"../../Menu/MenuItemButton/MenuItemButton.js";import"../../Menu/MenuDivider/MenuDivider.js";import"../../Menu/MenuTitle/MenuTitle.js";import"../../Menu/MenuGridItem/MenuGridItem.js";import{createPortal as a}from"react-dom";import{useTable as M}from"../context/TableContext/TableContext.js";import{getStyle as l}from"../../../helpers/typesciptCssModulesHelper.js";import{useTableRowMenu as d}from"../context/TableRowMenuContext/TableRowMenuContext.js";import{useTableContainer as p}from"../context/TableContainerContext/TableContainerContext.js";var c=t((function(t,c){var f=t.rowId,j=t.className,T=t.id,w=t["data-testid"],C=t.children,b=p().menuContainerRef,x=M().size,v=d(),I=v.hoveredRowId,R=v.setTableMenuHidden,E=v.setTableMenuShown,B=v.menuButtonPosition,h=v.onMouseOverRowMenu,N=v.onMouseLeaveRowMenu,z=n((function(){R()}),[R]),H=n((function(){E()}),[E]);return b.current&&I&&I===f?e.createElement(e.Fragment,null,a(e.createElement("div",{className:o(s.rowMenuContainer,l(s,x)),style:{top:B},onMouseEnter:h,onMouseLeave:N,"data-row-menu-id":f},e.createElement(m,{id:T,ref:c,className:o(s.tableMenu,j),size:m.sizes.XS,onMenuHide:z,onMenuShow:H,"data-testid":w||r(u.TABLE_ROW_MENU,T)},e.createElement(i,null,C))),b.current)):null}));export{c as default};
//# sourceMappingURL=TableRowMenu.js.map