import React from "react";
import { useMenu, LayoutProps, ITreeMenu } from "@refinedev/core";
import { Link } from "react-router-dom";
const Layout: React.FC<LayoutProps> = ({ children }) => {
const { menuItems, selectedKey } = useMenu();
const renderMenuItems = (items: ITreeMenu[]) => {
return (
<>
{items.map(({ key, name, label, icon, route, children, list }) => {
if (!list) {
return (
<li key={label}>
<span>{label ?? name}</span>
{children ? renderMenuItems(children) : null}
</li>
);
}
const isSelected = key === selectedKey;
return (
<li key={label}>
<Link
to={route}
style={{
fontWeight: isSelected ? "bold" : "normal",
}}
>
{icon}
<span>{label ?? name}</span>
</Link>
</li>
);
})}
</>
);
};
return (
<div>
<div>
<Link to="/">
<img src="<https://refine.dev/img/refine_logo.png"> alt="Logo" />
</Link>
<ul>{renderMenuItems(menuItems)}</ul>
</div>
<div>{children}</div>
</div>
);
};
import React from "react";
import { useMenu, LayoutProps, ITreeMenu } from "@refinedev/core";
import { Link } from "react-router-dom";
const Layout: React.FC<LayoutProps> = ({ children }) => {
const { menuItems, selectedKey } = useMenu();
const renderMenuItems = (items: ITreeMenu[]) => {
return (
<>
{items.map(({ key, name, label, icon, route, children, list }) => {
if (!list) {
return (
<li key={label}>
<span>{label ?? name}</span>
{children ? renderMenuItems(children) : null}
</li>
);
}
const isSelected = key === selectedKey;
return (
<li key={label}>
<Link
to={route}
style={{
fontWeight: isSelected ? "bold" : "normal",
}}
>
{icon}
<span>{label ?? name}</span>
</Link>
</li>
);
})}
</>
);
};
return (
<div>
<div>
<Link to="/">
<img src="<https://refine.dev/img/refine_logo.png"> alt="Logo" />
</Link>
<ul>{renderMenuItems(menuItems)}</ul>
</div>
<div>{children}</div>
</div>
);
};