import React from 'react' import withDefaults from '../utils/with-defaults' import useTheme from '../use-theme' const Panel: React.FC> = ({ active, children }) => { const theme = useTheme() return (
{children}
) } const Breadcrumb: React.FC void; active?: boolean }>> = ({ active, onClick, children }) => { const theme = useTheme() return (
{children}
) } const NavButton: React.FC< React.ButtonHTMLAttributes & { active?: boolean; className?: string } > = ({ active, onClick, className, children }) => { const theme = useTheme() return ( ) } const Container: React.FC> = ({ children }) => { const theme = useTheme() return (
{children}
) } const PanelContent: React.FC> = ({ children }) => { const theme = useTheme() return (
{children}
) } const StyledListElement: React.FC> = ({ className, children }) => { const theme = useTheme() return (
  • {children}
  • ) } interface Props { className?: string label: string icon?: React.ReactNode active?: boolean onToggle?: (newPanel: string | undefined) => void onBreadcrumbClick?: () => void promos?: [React.ReactNode] } const defaultProps = { center: false, className: '', promos: [] as Array } type NativeAttrs = Omit, keyof Props> export type FlyoutMenuProps = Props & typeof defaultProps & NativeAttrs const FlyoutMenu: React.FC> = ({ children, className, active, icon, label, onToggle, onBreadcrumbClick, promos, ...props }) => { return ( onToggle && onToggle(label)}> {label} {icon} onBreadcrumbClick && onBreadcrumbClick()}> {icon} {label} {children} {promos && promos.map((promo) => promo)} ) } export default withDefaults(FlyoutMenu, defaultProps)