import React, { CSSProperties, useCallback } from 'react'; import { Grid } from 'react-virtualized'; import { MenuItemT, MenuListItem } from './menu-list-item'; // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-nocheck export interface MenuListProps { rect: { left: number; right: number; top: number; bottom: number; }; mainIndex: number; menulist: MenuItemT[]; changeCheckState: ( mainIndex: number, subIndex: number, check: boolean, isRadio?: boolean ) => void; } type RendererProps = { columnIndex: number; rowIndex: number; key: string; style: CSSProperties; }; export const MenuList: React.FC = ({ rect, mainIndex, menulist, changeCheckState, }) => { const getRowHeight = useCallback( ({ index }: { index: number }): number => { const menuListItem = menulist[index]; if (menuListItem.visiable === false) { return 0; } if (menuListItem.type === 'separator') { return 10; } return 30; }, [menulist] ); const MenuListRenderer = useCallback( ({ key, rowIndex, style }: RendererProps) => ( ), [menulist, changeCheckState, mainIndex] ); const menuListHeight = menulist .map((_l, index) => getRowHeight({ index })) .reduce((a, b) => a + b, 0); return (
); };