From 95b5347b89a1a4a24714d7bf6dce6ade97a6a853 Mon Sep 17 00:00:00 2001 From: Alexandr Nelyubov Date: Tue, 9 Jun 2026 17:14:58 +0300 Subject: [PATCH] refactor: add redirect to projects page after delete --- src/features/projects/remove/model/useRemoveProject.ts | 10 ++++++++++ .../projects/remove/ui/RemoveProjectDialog.tsx | 6 +++++- 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/features/projects/remove/model/useRemoveProject.ts b/src/features/projects/remove/model/useRemoveProject.ts index 638add9..bdfafb8 100644 --- a/src/features/projects/remove/model/useRemoveProject.ts +++ b/src/features/projects/remove/model/useRemoveProject.ts @@ -1,5 +1,7 @@ import { type DefaultError, useMutation, UseMutationOptions } from '@tanstack/react-query'; import { projectFabricKeys, ProjectHttp, type TProject } from 'entities/project'; +import { useRouter, usePathname } from 'next/navigation'; +import { routes } from 'shared/config'; import { toast } from 'sonner'; type RemoveProjectVariables = { @@ -13,11 +15,19 @@ export type UseRemoveProjectOptions = Omit< >; export function useRemoveProject({ onSuccess, ...rest }: UseRemoveProjectOptions = {}) { + const router = useRouter(); + const pathname = usePathname(); + return useMutation({ ...rest, mutationFn: ({ teamId, id }) => ProjectHttp.removeProject(teamId, id), onSuccess: async (res, variables, _r, context) => { onSuccess?.(res, variables, _r, context); + + if (pathname !== routes.team.projects()) { + router.replace(routes.team.projects()); + } + toast.success(res.message ?? 'Проект удалён'); await context.client.invalidateQueries({ diff --git a/src/features/projects/remove/ui/RemoveProjectDialog.tsx b/src/features/projects/remove/ui/RemoveProjectDialog.tsx index c892c6f..4539e42 100644 --- a/src/features/projects/remove/ui/RemoveProjectDialog.tsx +++ b/src/features/projects/remove/ui/RemoveProjectDialog.tsx @@ -48,7 +48,11 @@ export function RemoveProjectDialog({ projectName, teamId, projectId, ...props } /> setInputValue('')}>Отмена - + Удалить