clear log
This commit is contained in:
17
docs/LOGIC_HEADER.md
Normal file
17
docs/LOGIC_HEADER.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Логика работы хедера (AppHeader)
|
||||
|
||||
Хедер - верхняя панель приложения. В нём 4 кнопки: "Смена", "Шарик" (запуск игры), "Выключение пульта", "Выход".
|
||||
|
||||
**Кнопка "Смена"**:
|
||||
- Принцип: Клик по кнопке открывает модальное окно ShiftModal. В модале форма с полями: дата смены (input type="date", обязательное), начальный баланс (input type="number", >0), примечания (textarea, опционально). Валидация: дата обязательна, баланс >0. При submit - отправка команды 'open-shift' через WebSocket с данными (date, amount, notes, user info). Закрытие модала, показ уведомления успеха или ошибки. Если нет прав (не оператор) - уведомление "Доступ ограничен".
|
||||
|
||||
**Кнопка "Шарик" (запуск игры)**:
|
||||
- Принцип: Клик по кнопке открывает модальное окно GameSelectionModal. Модал имеет 3 шага: 1) Выбор категории (банки, мишени, беспроигрышные - кнопки с иконками и кол-вом доступных игр). 2) Выбор конкретной игры из списка (фильтр по категории, только активные, не тестовые; показ название, патроны, сложность, цена). 3) Выбор оплаты (наличные или карта). При submit - отправка 'start' через WebSocket с параметрами (line=порт, game=ID, gamerId если есть, isBonus если бонус, paymentType=cash/card, tel=пользовательский телефон, patr=патроны игры). Закрытие модала. Если смена не открыта - перенаправление на открытие смены. Если ESP отключен - ошибка. Если нет прав - уведомление.
|
||||
|
||||
**Кнопка "Выключение пульта"**:
|
||||
- Принцип: Клик по кнопке показывает подтверждение (confirm dialog с текстом "Вы уверены?"). При подтверждении - отправка 'shutdown' через WebSocket. Показ уведомления "Пульт выключен". Если отмена - закрытие диалога.
|
||||
|
||||
**Кнопка "Выход"**:
|
||||
- Принцип: Клик по кнопке очищает auth state (logout), редирект на страницу логина. Показ уведомления "Выход выполнен".
|
||||
|
||||
Общая логика хедера: Проверка роли пользователя (оператор/техник/админ). Если нет прав на действие - показ уведомления "Доступ ограничен". Responsive дизайн (flex row), Tailwind стили. Интеграция с useAuth для роли, useNotifications для сообщений.
|
||||
Reference in New Issue
Block a user