export function mapItemToJSX()

in packages/rc-components/rc-console-menu/src/ItemDescriptor.tsx [12:43]


export function mapItemToJSX(item: IItemDescriptor): React.ReactNode {
  const {
    key,
    label,
    disabled = false,
    visible = true,
    render,
    items: subItems,
    navProps,
    type,
  } = item;
  if (visible) {
    if (subItems) {
      return (
        <S.SubMenu key={key} label={label} {...navProps}>
          {subItems.map(mapItemToJSX)}
        </S.SubMenu>
      );
    }

    if (type === 'divider') {
      return <S.Divider key={key} />;
    }

    return (
      <S.Item key={key} disabled={disabled} {...navProps}>
        {render ? render(item) : label}
      </S.Item>
    );
  }
  return null;
}