SPA-экран чата для тестового задания GORA (React + TypeScript + Vite).
- Репозиторий: https://github.com/ereburg/gora-chat-test
- Деплой: https://gora-chat-test.vercel.app
- React 19 + TypeScript
- shadcn/ui (base-nova)
- Tailwind CSS v4
- Jotai (клиентское/UI-состояние)
- TanStack Query (асинхронные сценарии отправки/ответа)
- Biome (линт и форматирование)
bun install
bun devАльтернатива через npm:
npm install
npm run devbun lint/npm run lint— проверка линтером (biome check .)bun format/npm run format— форматирование (biome format --write .)bun check/npm run check— дополнительная проверка (biome check .)bun typecheck/npm run typecheck— проверка типов (tsc --noEmit)bun build/npm run build— production-сборка
- Экран чата: сайдбар + лента сообщений
- Несколько чатов, поиск и переключение
- Статусы сообщений:
sending -> sent -> read,failed+ повторная отправка - Оптимистичная отправка
- Случайная ошибка отправки (~20%)
- Ответ бота с задержкой 1–2 сек
- Индикатор «Бот печатает...»
- Отмена отправки в статусе
sending - Дедупликация сообщений (исходящие + ответы бота в окне времени)
- Персистентность истории через
localStorage - Адаптивная вёрстка (desktop + mobile)
- Переключение темы (светлая / тёмная / системная)
- Меню действий чата (поиск, mute, очистка, экспорт, удаление)