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

useDomainMutation

@mineflow/client-react


@mineflow/client-react / useDomainMutation

Function: useDomainMutation()

function useDomainMutation<TVars, TData>(
invalidateKey: readonly unknown[],
fn: (client: MineflowClient, vars: TVars) => Promise<TData>,
options?: DomainMutationOptions): UseMutationResult<TData, Error, TVars>;

Defined in: client-react/src/hooks.ts:139

Единая доменная write-мутация: вызывает fn(client, vars) и на успехе инвалидирует invalidateKey (префикс списков/деталей раздела). Заменяет раздублированные per-area хелперы (useAssetMutation/useShiftReportMutation): раздел задаётся invalidateKey, offline-механика — опциями. На дженерике построены все concrete write-хуки SDK.

Type Parameters

Type ParameterDefault type
TVars-
TDataunknown

Parameters

ParameterTypeDescription
invalidateKeyreadonly unknown[]Ключ раздела для инвалидации на успехе (обычно queryKeys.<x>.all).
fn(client: MineflowClient, vars: TVars) => Promise<TData>Замыкание (client, vars) => Promise<TData>, делающее write-вызов.
optionsDomainMutationOptions{ mutationKey, scope } (DomainMutationOptions) — делают запись offline-устойчивой (стабильный key из персиста + строго-FIFO scope).

Returns

UseMutationResult<TData, Error, TVars>

Стандартный UseMutationResult.

Example

const m = useDomainMutation(queryKeys.personnel.all, async (c, vars: { id: string }) =>
unwrap(await c.PATCH('/api/v1/hr/personnel/{id}/start-watch', {
params: { path: { id: vars.id }, header: { 'Idempotency-Key': '' } },
})),
);