diff --git a/frontend/src/features/configs/ConfigCard.tsx b/frontend/src/features/configs/ConfigCard.tsx index 5d9a0af..172fff7 100644 --- a/frontend/src/features/configs/ConfigCard.tsx +++ b/frontend/src/features/configs/ConfigCard.tsx @@ -49,6 +49,7 @@ export function ConfigCard({ config }: { config: VpnConfigDto }) { toast.success(t('configs.revoked')) setDetailsOpen(false) await queryClient.invalidateQueries({ queryKey: ['my-configs'] }) + await queryClient.invalidateQueries({ queryKey: ['available-inbounds'] }) }, onError: () => toast.error(t('auth.genericError')), }) diff --git a/frontend/src/features/configs/CreateConfigDialog.tsx b/frontend/src/features/configs/CreateConfigDialog.tsx index d19f418..93080dc 100644 --- a/frontend/src/features/configs/CreateConfigDialog.tsx +++ b/frontend/src/features/configs/CreateConfigDialog.tsx @@ -59,6 +59,8 @@ export function CreateConfigDialog({ inbounds }: { inbounds: AvailableInboundDto onSuccess: async () => { toast.success(t('configs.created')) await queryClient.invalidateQueries({ queryKey: ['my-configs'] }) + // Новый конфиг меняет загрузку ноды (AvailableInboundDto.loadPercent/nodeConfigCount). + await queryClient.invalidateQueries({ queryKey: ['available-inbounds'] }) setOpen(false) setInboundId('') setLabel('') @@ -80,7 +82,14 @@ export function CreateConfigDialog({ inbounds }: { inbounds: AvailableInboundDto }) return ( - + { + // Загрузку нод меняют и другие пользователи — при каждом открытии берём свежую. + if (next) void queryClient.invalidateQueries({ queryKey: ['available-inbounds'] }) + setOpen(next) + }} + >