Files
mechanic-pwa/driver-pwa/frontend/src/store/staff.ts
T
tremble7681andClaude Opus 5 9aa71d6ca7 feat(pwa): тумблер боевой оплаты в отладке
Выключен по умолчанию: пополнение под просмотром открывает учебный экран. Включён
— платёж уходит в банк, и над кнопкой «Оплатить» появляется предупреждение, что
деньги спишутся по-настоящему и зачислятся водителю.

Режим гаснет вместе с выходом из учётки сотрудника: следующий раз он включается
осознанно, а не достаётся по наследству.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 17:30:55 +10:00

37 lines
1.7 KiB
TypeScript

import { create } from "zustand";
import { persist } from "zustand/middleware";
/**
* Сеанс СОТРУДНИКА — учётка CRM, которой берут просмотр от лица водителя.
*
* Хранится отдельно от водительского: это два разных токена с разным смыслом.
* «Перестать смотреть за водителя» обязано оставлять сотрудника залогиненным,
* иначе смена водителя каждый раз означала бы новый ввод пароля; и наоборот —
* `clear()` водительского сеанса не должен трогать сотрудника.
*/
interface StaffState {
token: string | null;
username: string | null;
/** Боевая оплата под просмотром: платёж уходит в банк и зачисляется водителю.
* Выключено по умолчанию — под чужим лицом легко забыть, кого пополняешь. */
livePay: boolean;
setStaff: (token: string, username: string) => void;
setLivePay: (on: boolean) => void;
clear: () => void;
}
export const useStaff = create<StaffState>()(
persist(
(set) => ({
token: null,
username: null,
livePay: false,
setStaff: (token, username) => set({ token, username }),
setLivePay: (livePay) => set({ livePay }),
// Выход сотрудника гасит и боевой режим: следующий раз он включается осознанно.
clear: () => set({ token: null, username: null, livePay: false }),
}),
{ name: "pp-driver-staff" }
)
);