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

availableActions

@mineflow/client-react


@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

ParameterTypeDescription
machineAnyStateMachinexstate-машина агрегата (из @mineflow/api-schemas, напр. assetMachine).
stateValuestringТекущий статус сущности (строковый ключ верхнего уровня).

Returns

string[]

Имена доступных переходов (event-типов) — что показать кнопками. Неизвестный stateValue → пустой массив.

Example

availableActions(assetMachine, asset.status);
// ['SEND_TO_MAINTENANCE', 'CONSERVE', 'DECOMMISSION']