Files
Steven 4466ba436b chore(examples): use default prettier for examples/templates (#60530)
## Description
This PR ensures that the default prettier config is used for examples
and templates.

This config is compatible with `prettier@3` as well (upgrading prettier
is bigger change that can be a future PR).

## Changes
- Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will
be needed upgrading to prettier@3)
- Added `examples/.prettierrc.json` with default config (this will
change every example)
- Added `packages/create-next-app/templates/.prettierrc.json` with
default config (this will change every template)

## Related

- Fixes #54402
- Closes #54409
2024-01-11 16:01:44 -07:00

54 lines
1.3 KiB
TypeScript

import { ModalToggler } from "@faceless-ui/modal";
import Link from "next/link";
import React from "react";
import { MainMenu } from "../../payload-types";
import { Gutter } from "../Gutter";
import { MenuIcon } from "../icons/Menu";
import { CMSLink } from "../Link";
import { Logo } from "../Logo";
import { MobileMenuModal, slug as menuModalSlug } from "./MobileMenuModal";
import classes from "./index.module.scss";
type HeaderBarProps = {
children?: React.ReactNode;
};
export const HeaderBar: React.FC<HeaderBarProps> = ({ children }) => {
return (
<header className={classes.header}>
<Gutter className={classes.wrap}>
<Link href="/">
<Logo />
</Link>
{children}
<ModalToggler
slug={menuModalSlug}
className={classes.mobileMenuToggler}
>
<MenuIcon />
</ModalToggler>
</Gutter>
</header>
);
};
export const Header: React.FC<{ mainMenu: MainMenu }> = ({ mainMenu }) => {
const navItems = mainMenu?.navItems || [];
return (
<>
<HeaderBar>
<nav className={classes.nav}>
{navItems.map(({ link }, i) => {
return <CMSLink key={i} {...link} />;
})}
</nav>
</HeaderBar>
<MobileMenuModal navItems={navItems} />
</>
);
};