@coinmeca/ui
Version:
This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).
32 lines • 1.65 kB
JSX
"use client";
import { Layouts } from "../../../components";
import { Fragment } from "react";
import Style, { Row } from "./Menu.styled";
export default function Menu(props) {
const scale = props?.scale || 1;
const Items = (menu) => {
return typeof menu === "object" && menu?.children?.length > 0 ? (<Row $scale={scale} style={menu?.style} $fix={menu?.fix} data-show={menu?.show} data-hide={menu?.hide}>
{menu?.children &&
(Array.isArray(menu?.children)
? menu?.children?.map((v, k) => (<Fragment key={k}>{Items(v?.children || (!v?.style && v))}</Fragment>))
: Items(menu?.children))}
</Row>) : Array.isArray(menu) && menu?.length > 0 ? (<Row $scale={scale}>
{menu?.map((v, k) => (<Fragment key={k}>{Items(v)}</Fragment>))}
</Row>) : (<>{menu}</>);
};
const Menus = (menu) => {
return (<>
<Row $scale={scale} style={menu?.style} data-show={menu?.show} data-hide={menu?.hide}>
{Items(menu?.children || (!menu?.style && menu))}
</Row>
<Layouts.Divider />
</>);
};
return (props?.menu && (<Style style={props?.style} $scale={scale} data-show={props?.show} data-hide={props?.hide}>
{typeof props?.menu !== "string" && props?.menu?.length > 0 ? (props?.menu?.map((v, k) => <Fragment key={k}>{Menus(v)}</Fragment>)) : (<>
{Items(props?.menu)}
<Layouts.Divider />
</>)}
</Style>));
}
//# sourceMappingURL=Menu.jsx.map