43 lines
1.1 KiB
TypeScript
43 lines
1.1 KiB
TypeScript
import { useState } from 'react';
|
|
import { Container, Group, Burger } from '@mantine/core';
|
|
import { useDisclosure } from '@mantine/hooks';
|
|
import { MantineLogo } from '@mantine/ds';
|
|
import classes from '@/styles/Header.module.css';
|
|
|
|
const links = [
|
|
{ link: '/about', label: 'Features' },
|
|
{ link: '/pricing', label: 'Pricing' },
|
|
{ link: '/learn', label: 'Learn' },
|
|
{ link: '/community', label: 'Community' },
|
|
];
|
|
|
|
export default function Header() {
|
|
const [opened, { toggle }] = useDisclosure(false);
|
|
const [active, setActive] = useState(links[0].link);
|
|
|
|
const items = links.map((link) => (
|
|
<a
|
|
key={link.label}
|
|
href={link.link}
|
|
className={classes.link}
|
|
data-active={active === link.link || undefined}
|
|
onClick={(event) => {
|
|
event.preventDefault();
|
|
setActive(link.link);
|
|
}}
|
|
>
|
|
{link.label}
|
|
</a>
|
|
));
|
|
|
|
return (
|
|
<header className={classes.header}>
|
|
<Container size="md" className={classes.inner}>
|
|
<MantineLogo size={28} />
|
|
<Group gap={5}>
|
|
{items}
|
|
</Group>
|
|
</Container>
|
|
</header>
|
|
);
|
|
} |