From 61ca7fee90b7f68b2a124fcd391ec7af37e07dc5 Mon Sep 17 00:00:00 2001 From: nns Date: Sat, 30 May 2026 12:39:39 +0500 Subject: [PATCH] =?UTF-8?q?fix(catalog):=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5?= =?UTF-8?q?=20Delete=20=D0=BD=D0=B5=20refetch'=D0=B0=D0=B5=D0=BC=20=D1=83?= =?UTF-8?q?=D0=B4=D0=B0=D0=BB=D1=91=D0=BD=D0=BD=D1=8B=D0=B9=20=D1=82=D0=BE?= =?UTF-8?q?=D0=B2=D0=B0=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Найдено через UI-deep: после Удалить ProductEditPage делал qc.invalidateQueries({queryKey:['/api/catalog/products']}) до navigate'a. React Query refetch'ил конкретно ['/api/catalog/products', id] (тот что живёт на этой же странице) → 404 → axios interceptor показывал toast «Не найдено» поверх редиректа на список. Фикс: сначала navigate('/catalog/products'), потом qc.removeQueries для item-кеша + invalidate список с exact=true чтобы не матчить вложенный item-key. Co-Authored-By: Claude Opus 4.7 --- src/food-market.web/src/pages/ProductEditPage.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/food-market.web/src/pages/ProductEditPage.tsx b/src/food-market.web/src/pages/ProductEditPage.tsx index 5c85891..1406470 100644 --- a/src/food-market.web/src/pages/ProductEditPage.tsx +++ b/src/food-market.web/src/pages/ProductEditPage.tsx @@ -184,8 +184,13 @@ export function ProductEditPage() { const remove = useMutation({ mutationFn: async () => { await api.delete(`/api/catalog/products/${id}`) }, onSuccess: () => { - qc.invalidateQueries({ queryKey: ['/api/catalog/products'] }) + // Сначала навигируемся ПРОЧЬ с edit-страницы (иначе оставшийся + // useQuery(['/api/catalog/products', id]) после invalidate refetch'нёт + // удалённый id и Toaster покажет «Не найдено» поверх редиректа). Затем + // выкидываем item-кеш и обновляем список. navigate('/catalog/products') + qc.removeQueries({ queryKey: ['/api/catalog/products', id] }) + qc.invalidateQueries({ queryKey: ['/api/catalog/products'], exact: true }) }, meta: { successMessage: 'Удалено' }, })