import { Link, Plain, Repeater, Text, types } from 'react-bricks/rsc' import blockNames from '../blockNames' import HeaderMenuItemClient from './HeaderMenuItemClient' import HeaderMenuItemProvider from './HeaderMenuItemProvider' import { ItemMenuClient } from './ItemMenuClient' interface HeaderMenuItemProps { linkPath: string linkText: types.TextValue submenuItems: types.RepeaterItems } const HeaderMenuItem: types.Brick = (props) => { const { linkPath, linkText, submenuItems } = props if (!submenuItems || !submenuItems.length) { return (
{children}} /> {' '} {typeof linkText === 'string' ? linkText : Plain.serialize(linkText)}
) } return (
{children}
} /> } submenuItems={ ( {item} )} /> } menuItemTextMobile={ typeof linkText === 'string' ? linkText : Plain.serialize(linkText) } submenuItemsMobile={ ( {item} )} /> } >
) } HeaderMenuItem.schema = { name: blockNames.HeaderMenuItem, label: 'Menu Item', category: 'layout', hideFromAddMenu: true, playgroundLinkLabel: 'View source code on Github', playgroundLinkUrl: 'https://github.com/ReactBricks/reactbricks-starters/blob/main/packages/reactbricks-ui/nextjs-app/src/layout/HeaderMenuItem.tsx', repeaterItems: [ { name: 'submenuItems', itemType: blockNames.HeaderMenuSubItem, }, ], getDefaultProps: () => ({ linkPath: '/about-us', linkText: 'About us', }), sideEditProps: [ { name: 'linkPath', label: 'Link to...', type: types.SideEditPropType.Text, }, ], } export default HeaderMenuItem