useDomainMutation
@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 Parameter | Default type |
|---|---|
TVars | - |
TData | unknown |
Parameters
| Parameter | Type | Description |
|---|---|---|
invalidateKey | readonly unknown[] | Ключ раздела для инвалидации на успехе (обычно queryKeys.<x>.all). |
fn | (client: MineflowClient, vars: TVars) => Promise<TData> | Замыкание (client, vars) => Promise<TData>, делающее write-вызов. |
options | DomainMutationOptions | { 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': '' } },
})),
);