Перейти к основному содержимому

index

@mineflow/client-react


@mineflow/client-react / realtime

realtime

Interfaces​

InterfaceDescription
EamSignalЛёгкий доменный сигнал EAM (канал eam:<org>) — зеркало backend EamAssetChangedSignal. Несёт только assetId, чтобы клиент точечно инвалидировал деталь актива; состояние читается из REST (ADR-0044).
RealtimeAuditOptions-
RealtimeEamOptions-
RealtimeNotificationsOptions-
RealtimeProviderProps-
RealtimeTasksOptions-
TasksSignalЛёгкий доменный сигнал задач (канал tasks:<org>) — зеркало backend TaskChangedSignal. Несёт только taskId; состояние читается из REST.

Functions​

FunctionDescription
RealtimeProvider-
useOnNotificationПодписка на входящие уведомления из Centrifugo (personal + role каналы). Низкоуровневый хук: только колбэк, без записи в кэш — для счётчиков/тостов. Колбэк хранится в ref, поэтому передавать можно inline без ре-подписки. No-op при выключенном Centrifugo.
usePresencePresence-индикатор (ADR-0054): сколько коллег организации сейчас онлайн в realtime. enabled=false → { online: 0, enabled: false }, индикатор прячется.
useRealtimeAuditLive-обновление org-wide ленты аудита (ADR-0073, Admin-only). Модель — «сигнал + дебаунс-рефетч»: по каналу audit:<org> прилетает лёгкий сигнал без payload строки, хук коалесцирует всплеск в один invalidateQueries по ['audit-feed'] (текущий фильтр подхватывается из активного запроса). Источник истины — REST (ADR-0044). No-op при выключенном Centrifugo (enabled=false).
useRealtimeEamОБРАЗЕЦ доменной live-инвалидации (зеркало useRealtimeAudit). По каналу eam:<org> прилетает лёгкий сигнал { assetId } при смене статуса актива; хук коалесцирует всплеск в один проход инвалидации: - queryKeys.assets.all — списки + детали + дерево активов (вложено под тем же префиксом); - queryKeys.movements.all — смена статуса создаёт запись журнала движений; - точечно queryKeys.assets.detail(assetId) по каждому накопленному id; - extraKeys потребителя.
useRealtimeNotificationsЕдинственный realtime-хук ленты (ADR-0054): входящие из Centrifugo префиксятся в TanStack-кэш useNotifications (дедуп по id) — экран видит один растущий список. No-op при выключенном Centrifugo (живые апдейты тогда не приходят, актуализация — рефетчем backlog).
useRealtimeTasksLive-инвалидация задач (зеркало useRealtimeEam). По каналу tasks:<org> прилетает лёгкий сигнал { taskId } на ЛЮБОЕ изменение задачи (создание, назначение, любой FSM-переход, отмена); хук коалесцирует всплеск в один invalidateQueries по queryKeys.tasks.all — префикс ['tasks','tasks'] накрывает и списки/доску, и детали. Источник истины — REST. No-op при выключенном Centrifugo (enabled=false) — доска тогда живёт на рефетче backlog.