mirror of
https://github.com/ershisan99/DevToysWeb.git
synced 2025-12-16 20:49:23 +00:00
wip: add icon and button
This commit is contained in:
@@ -26,6 +26,7 @@ export const Key = memo(icons.Key, equal);
|
|||||||
export const Link = memo(icons.Link2, equal);
|
export const Link = memo(icons.Link2, equal);
|
||||||
export const Maximize = memo(icons.Maximize2, equal);
|
export const Maximize = memo(icons.Maximize2, equal);
|
||||||
export const Minimize = memo(icons.Minimize2, equal);
|
export const Minimize = memo(icons.Minimize2, equal);
|
||||||
|
export const Menu = memo(icons.Menu, equal);
|
||||||
export const PackagePlus = memo(icons.PackagePlus, equal);
|
export const PackagePlus = memo(icons.PackagePlus, equal);
|
||||||
export const Paintbrush = memo(icons.Paintbrush2, equal);
|
export const Paintbrush = memo(icons.Paintbrush2, equal);
|
||||||
export const Rows = memo(icons.Rows, equal);
|
export const Rows = memo(icons.Rows, equal);
|
||||||
|
|||||||
@@ -1,18 +1,29 @@
|
|||||||
|
import { useCallback } from "react";
|
||||||
import Link from "next/link";
|
import Link from "next/link";
|
||||||
|
|
||||||
import { siteConfig } from "@/config/site";
|
import { siteConfig } from "@/config/site";
|
||||||
import { cn } from "@/lib/style";
|
import { cn } from "@/lib/style";
|
||||||
import * as icons from "@/components/icons";
|
import * as icons from "@/components/icons";
|
||||||
|
import { Menu } from "@/components/icons";
|
||||||
import { ThemeToggle } from "@/components/theme-toggle";
|
import { ThemeToggle } from "@/components/theme-toggle";
|
||||||
|
|
||||||
type Props = {
|
type Props = {
|
||||||
className?: string;
|
className?: string;
|
||||||
|
isMenuOpen?: boolean;
|
||||||
|
onMenuToggle?: (newValue: boolean) => void;
|
||||||
};
|
};
|
||||||
|
|
||||||
export function SiteHeader({ className }: Props) {
|
export function SiteHeader({ className, isMenuOpen, onMenuToggle }: Props) {
|
||||||
|
const handleMenuToggle = useCallback(() => {
|
||||||
|
onMenuToggle?.(!isMenuOpen);
|
||||||
|
}, [isMenuOpen, onMenuToggle]);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<header className={cn("flex items-center justify-between px-4", className)}>
|
<header className={cn("flex items-center justify-between px-4", className)}>
|
||||||
<div className="flex items-baseline gap-x-2.5">
|
<div className="flex items-baseline gap-x-2.5">
|
||||||
|
<button type="button" className="flex items-center self-center" onClick={handleMenuToggle}>
|
||||||
|
<Menu />
|
||||||
|
</button>
|
||||||
<Link className="text-lg" href="/">
|
<Link className="text-lg" href="/">
|
||||||
{siteConfig.name}
|
{siteConfig.name}
|
||||||
</Link>
|
</Link>
|
||||||
|
|||||||
Reference in New Issue
Block a user