fix: prevent duplicate channel action toasts (#5015)

* fix: prevent duplicate channel action toasts

* fix: localize api error fallbacks
This commit is contained in:
yyhhyyyyyy
2026-05-26 10:20:54 +08:00
committed by GitHub
parent a64f26d1d2
commit ad224ecf5b
6 changed files with 182 additions and 81 deletions
@@ -19,9 +19,14 @@ For commercial licensing, please contact support@quantumnous.com
import { useRef, useState, useCallback } from 'react'
import { useTranslation } from 'react-i18next'
import { toast } from 'sonner'
import { api } from '@/lib/api'
import { api, type ApiRequestConfig } from '@/lib/api'
import { normalizeModelList } from '../lib/upstream-update-utils'
const upstreamUpdateRequestConfig = {
skipBusinessError: true,
skipErrorHandler: true,
} satisfies ApiRequestConfig
function getManualIgnoredModelCount(settings: unknown): number {
let parsed: Record<string, unknown> | null = null
if (settings && typeof settings === 'object')
@@ -117,7 +122,7 @@ export function useChannelUpstreamUpdates(refresh: () => Promise<void>) {
ignore_models: ignoreModels,
remove_models: normalizeModelList(selectedRemove),
},
{ skipErrorHandler: true } as Record<string, unknown>
upstreamUpdateRequestConfig
)
const { success, message, data } = res.data || {}
if (!success) {
@@ -162,7 +167,7 @@ export function useChannelUpstreamUpdates(refresh: () => Promise<void>) {
const res = await api.post(
'/api/channel/upstream_updates/apply_all',
{},
{ skipErrorHandler: true } as Record<string, unknown>
upstreamUpdateRequestConfig
)
const { success, message, data } = res.data || {}
if (!success) {
@@ -206,7 +211,7 @@ export function useChannelUpstreamUpdates(refresh: () => Promise<void>) {
const res = await api.post(
'/api/channel/upstream_updates/detect',
{ id: ch.id },
{ skipErrorHandler: true } as Record<string, unknown>
upstreamUpdateRequestConfig
)
const { success, message, data } = res.data || {}
if (!success) {
@@ -244,7 +249,7 @@ export function useChannelUpstreamUpdates(refresh: () => Promise<void>) {
const res = await api.post(
'/api/channel/upstream_updates/detect_all',
{},
{ skipErrorHandler: true } as Record<string, unknown>
upstreamUpdateRequestConfig
)
const { success, message, data } = res.data || {}
if (!success) {