/
hardtmuth
/
browser-startpage
Обзор
Документация
Войти
/
hardtmuth
/
browser-startpage
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/components/Header.jsx
80 строк
2 KB
Andrey Abramov
add data
26 апр 2026, 16:36
26 апр 2026, 16:36
8e4db3f
Код
Авторство
О чём код?
import { IconSearch } from '@tabler/icons-react'; import { Autocomplete, Burger, Divider, Drawer, Group, ScrollArea } from '@mantine/core'; import { useDisclosure } from '@mantine/hooks'; import { ThemeSwitcher } from './ThemeSwitcher'; 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 function Header() { const [opened, { toggle, close }] = useDisclosure(false); const items = links.map((link) => ( <a key={link.label} href={link.link} className={classes.link} onClick={(event) => event.preventDefault()} > {link.label} </a> )); return ( <header className={classes.header}> <div className={classes.inner}> <Group> <Burger opened={opened} onClick={toggle} size="sm" hiddenFrom="sm" aria-label="Toggle navigation" /> </Group> Hello <Group> {/* <Group ml={50} gap={5} className={classes.links} visibleFrom="sm"> {items} </Group> */} <Autocomplete className={classes.search} placeholder="Search" leftSection={<IconSearch size={16} stroke={1.5} />} data={['React', 'Angular', 'Vue', 'Next.js', 'Riot.js', 'Svelte', 'Blitz.js']} visibleFrom="xs" /> <ThemeSwitcher /> </Group> </div> <Drawer opened={opened} onClose={close} size="100%" padding="md" title="Navigation" hiddenFrom="sm" zIndex={1000000} > <ScrollArea h="calc(100vh - 80px" mx="-md"> <Divider my="sm" /> <Autocomplete placeholder="Search" leftSection={<IconSearch size={16} stroke={1.5} />} data={['React', 'Angular', 'Vue', 'Next.js', 'Riot.js', 'Svelte', 'Blitz.js']} mx="md" mb="sm" /> {items} </ScrollArea> </Drawer> </header> ); }