HotelSync bc12f8aabc Fix WS offline on first login: sync token between api.ts and AuthContext
Two root causes fixed:
1. api.ts saveToken() updated only localStorage, not React state — WS kept
   reconnecting with the expired token. Now dispatches hotelsync:token-updated
   event; AuthContext listens and updates session state, triggering WS reconnect
   with the fresh token.
2. AuthContext mount effect could race with login(): if refresh failed while
   login() was concurrently setting a new token, catch() called setSession(null)
   and wiped the fresh session. Fixed with functional setSession updater that
   checks current state before clearing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 17:37:36 +03:00
2026-03-10 20:38:32 +03:00

HotelSync — SaaS PMS System

Современная система управления отелем (PMS) с шахматкой бронирований, менеджером каналов и API.

Быстрый старт

npm install
npm run dev

Откройте http://localhost:5173

Демо-аккаунты

Роль Email Пароль
Менеджер отеля manager@grand-palace.ru demo
Горничная cleaner@grand-palace.ru demo
Супер-администратор admin@hotelsync.io demo

Функциональность

  • Шахматка — drag-to-book интерфейс, цветовое кодирование по статусам
  • Бронирования — список с фильтрами, создание, детальная панель
  • Номерной фонд — карточки номеров, статусы, уборка
  • Уборка — Kanban-доска: ожидание / в процессе / готово
  • Менеджер каналов — Booking.com, Airbnb, Expedia, VRBO
  • API-документация — встроенная документация REST API
  • Светлая / тёмная тема — переключатель в шапке
  • Мультиарендность — архитектура SaaS с изоляцией по отелям

Структура проекта

src/
├── components/
│   ├── calendar/       # Шахматка бронирований
│   ├── bookings/       # Модалки бронирований
│   ├── layout/         # Sidebar, Topbar
│   └── ui/             # Badge, Modal
├── contexts/           # AuthContext, ThemeContext
├── data/               # Мок-данные
├── layouts/            # AppLayout
├── lib/                # Утилиты, константы
├── pages/              # Страницы приложения
└── types/              # TypeScript типы

API

Base URL: https://api.hotelsync.io/v1

Документация доступна в приложении: /grand-palace/api-docs

Стек технологий

  • React 18 + TypeScript
  • Vite 5
  • Tailwind CSS 3 (dark mode)
  • React Router 6
  • date-fns
  • Lucide React
Description
No description provided
Readme 1.6 MiB
Languages
TypeScript 98.4%
HTML 0.7%
JavaScript 0.3%
Shell 0.2%
CSS 0.2%
Other 0.1%