Боковая панель навигации
Сделай кнопку «Меню», по которой слева выезжает панель с навигацией: пункты «Проекты», «Команда», «Настройки», разделитель и пункт «Выйти», выделенный как опасный. Выбор пункта вызывает переданный колбэк onNavigate с ключом пункта и закрывает панель.
side-nav__docs__claude-code__claude-opus-5__1 · 23.09.2026, 20:19:13 мск
Проверки пройдены
Доки · claude-opus-5 · Claude CodeКонтекст до задачи~22 702
Токенов на прогон47 802
Цена$0.260
Ошибок компилятора0
Первый вызов модели получил 47 360 токенов входа, включая системный промпт Claude Code. Контекст до задачи — оценка по длине текста, для русского текста она занижает число токенов в полтора-два раза.
Компилятор
Ошибок нет: все компоненты и пропсы существуют.
Линтер и покрытие
Замечаний нет.
Компоненты библиотеки
JxButton, JxDrawer, JxMenu
Ожидались JxDrawer, JxMenu, JxButton · покрытие 100%
Доки (llms-full.txt, ~22548)
Вход 2 · выход 442 · из кэша 8 233 · в кэш 39 125 · 11 с
Рендер
Код компонента
tsx36 строк
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
import { useState } from 'react';
import { JxButton, JxDrawer, JxMenu } from '@jinx-ui/react';
type NavKey = 'projects' | 'team' | 'settings' | 'logout';
interface NavigationDrawerProps {
onNavigate: (key: NavKey) => void;
}
export default function NavigationDrawer({ onNavigate }: NavigationDrawerProps) {
const [open, setOpen] = useState(false);
const select = (key: NavKey) => {
onNavigate(key);
setOpen(false);
};
return (
<>
<JxButton variant="ghost" onClick={() => setOpen(true)}>
Меню
</JxButton>
<JxDrawer open={open} onOpenChange={setOpen} title="Меню" side="left">
<JxMenu
items={[
{ label: 'Проекты', onSelect: () => select('projects') },
{ label: 'Команда', onSelect: () => select('team') },
{ label: 'Настройки', onSelect: () => select('settings') },
{ type: 'divider' },
{ label: 'Выйти', danger: true, onSelect: () => select('logout') },
]}
/>
</JxDrawer>
</>
);
}