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

index

@mineflow/client-react


@mineflow/client-react / hooks

hooks

Classes​

ClassDescription
SagaFailedErrorМутация с async-сагой: start инициирует операцию (POST → { sagaId }), затем хук поллит /sagas/{id}/status до терминального состояния.

Interfaces​

InterfaceDescription
DomainMutationOptionsДоп. опции доменной мутации (для offline-устойчивых записей, ADR-0049).

Functions​

FunctionDescription
assertSagaSucceededПревращает терминально-отказную сагу (failed/compensated) в брошенную SagaFailedError; успешную возвращает как есть. Вынесено отдельной чистой функцией, чтобы поведение покрывалось unit-тестом без рендера хука.
useApiMutationДженерик-write без авто-инвалидации кэша — когда кэшем управляешь сам (optimistic-апдейты, ручной setQueryData). Авто-Idempotency-Key всё равно проставит fetch-слой по generateId. Для автоинвалидации раздела бери useDomainMutation.
useApiQueryТипобезопасный дженерик-хук чтения под любой endpoint, которого ещё нет в concrete-наборе. Конкретный запрос вызывает caller через замыкание fn(client) и типизирует его против @mineflow/api-client — SDK даёт лишь механику (кэш TanStack Query + REST-клиент из контекста), не хардкодит формы DTO.
useApiQueryAllКак useApiQuery, но стягивает ВСЕ страницы курсорной пагинации в один массив (collectAllPages). Нужен там, где UI обязан видеть полный набор, а серверный предел страницы (limit ≤ 200, libs/common) молча обрезал бы одностраничный запрос — напр. пикеры персонала/техники на участке с >200 единицами.
useDomainMutationЕдиная доменная write-мутация: вызывает fn(client, vars) и на успехе инвалидирует invalidateKey (префикс списков/деталей раздела). Заменяет раздублированные per-area хелперы (useAssetMutation/useShiftReportMutation): раздел задаётся invalidateKey, offline-механика — опциями. На дженерике построены все concrete write-хуки SDK.
useSagaMutationХук async-саги: start инициирует операцию (POST 202 → { sagaId }), затем хук поллит /sagas/{id}/status до терминального состояния и резолвится финальным SagaStatus. Терминальный откат (failed/compensated) бросается как SagaFailedError → срабатывает onError, а не onSuccess.