availableActions
@mineflow/client-react / availableActions
Function: availableActions()
function availableActions(machine: AnyStateMachine, stateValue: string): string[];
Defined in: client-react/src/available-actions.ts:31
Доступные действия (event-типы) в данном состоянии FSM — для показа/сокрытия кнопок в UI. Источник истины — та же xstate-машина, что у бэка (ADR-0022), передаётся параметром (curated re-export машин — отдельный L0-пакет).
Возвращает имена переходов state-node БЕЗ учёта guard'ов: бэк всё равно
валидирует переход, а UI должен предлагать действие, даже если оно требует
доп. ввода (напр. DECOMMISSION с double-approval). Машины MineFlow плоские —
stateValue это строковый ключ верхнего уровня.
ВАЖНО: имя FSM-события ≠ имя endpoint'а 1:1, но (ADR-0045) каждый переход
статуса EAM asset имеет dedicated endpoint на eam/assets: CONSERVE →
PATCH /eam/assets/:id/conserve, REACTIVATE → …/reactivate,
COMPLETE_MAINTENANCE → …/complete-maintenance. Маппинг событие→вызов держат
концентратные write-хуки (useConserveAsset, useReactivateAsset,
useCompleteMaintenance, … в ./domain-hooks), а не этот helper.
Parameters
| Parameter | Type | Description |
|---|---|---|
machine | AnyStateMachine | xstate-машина агрегата (из @mineflow/api-schemas, напр. assetMachine). |
stateValue | string | Текущий статус сущности (строковый ключ верхнего уровня). |
Returns
string[]
Имена доступных переходов (event-типов) — что показать кнопками.
Неизвестный stateValue → пустой массив.
Example
availableActions(assetMachine, asset.status);
// ['SEND_TO_MAINTENANCE', 'CONSERVE', 'DECOMMISSION']