Source

components/menu-item.js

  1. import React from 'react';
  2. import { Link } from "./link";
  3. /**
  4. * @see {@link Menu}
  5. * @deprecated
  6. * @component
  7. * @category Header
  8. */
  9. export function MenuItem({ item, className, currentUrl }) {
  10. const url = getRelativeUrl(item.url);
  11. return <li>{getMenuItemBody(item, `${className}${currentUrl == url ? " active" : ""}`, url)}</li>;
  12. }
  13. function getRelativeUrl(url) {
  14. const {pathname, search, hash} = new URL(url);
  15. return `${pathname}${search || ""}${hash || ""}`;
  16. }
  17. function getMenuItemBody(item, className, url, currentUrl) {
  18. switch(item['item-type']) {
  19. case 'section': return <Link href={url} className={className}>{item.title}</Link>
  20. default: return <a href={item.url} className={className}>{item.title}</a>;
  21. }
  22. }