/
githubmirror
/
novu
Обзор
Документация
Войти
/
githubmirror
/
novu
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
next
apps/dashboard/src/hooks/use-patch-workflow.ts
46 строк
2 KB
cursor[bot]
chore(root): weekly dependency updates (axios, ioredis, clickhouse) fixes NV-7988 (#11479)
09 июн 2026, 11:25
Не верифицирован
09 июн 2026, 11:25
f7d7a9b
Код
Авторство
О чём код?
import type { WorkflowResponseDto } from '@novu/shared'; import { UseMutationOptions, useMutation, useQueryClient } from '@tanstack/react-query'; import { patchWorkflow } from '@/api/workflows'; import { useEnvironment } from '@/context/environment/hooks'; import { getIdFromSlug, WORKFLOW_DIVIDER } from '@/utils/id-utils'; import { QueryKeys } from '@/utils/query-keys'; import { OmitEnvironmentFromParameters } from '@/utils/types'; type PatchWorkflowParameters = OmitEnvironmentFromParameters<typeof patchWorkflow>; export const usePatchWorkflow = ( options?: UseMutationOptions<WorkflowResponseDto, unknown, PatchWorkflowParameters> ) => { const queryClient = useQueryClient(); const { currentEnvironment } = useEnvironment(); const { mutateAsync, ...rest } = useMutation({ mutationFn: (args: PatchWorkflowParameters) => patchWorkflow({ environment: currentEnvironment!, ...args }), ...options, onSuccess: async (data, variables, onMutateResult, context) => { await queryClient.setQueryData( [ QueryKeys.fetchWorkflow, currentEnvironment?._id, getIdFromSlug({ slug: variables.workflowSlug ?? '', divider: WORKFLOW_DIVIDER }), ], data ); await queryClient.invalidateQueries({ queryKey: [QueryKeys.fetchWorkflows], }); queryClient.invalidateQueries({ queryKey: [QueryKeys.diffEnvironments], }); options?.onSuccess?.(data, variables, onMutateResult, context); }, }); return { ...rest, patchWorkflow: mutateAsync, }; };