diff --git a/src/hooks/useDragSort.ts b/src/hooks/useDragSort.ts index d2e0a5b..a2097c6 100644 --- a/src/hooks/useDragSort.ts +++ b/src/hooks/useDragSort.ts @@ -74,8 +74,15 @@ export function useDragSort(providers: Record, appId: AppId) { await queryClient.invalidateQueries({ queryKey: ["providers", appId], }); - // 更新托盘菜单以反映新的排序 - await providersApi.updateTrayMenu(); + + // 更新托盘菜单以反映新的排序(失败不影响主操作) + try { + await providersApi.updateTrayMenu(); + } catch (trayError) { + console.error("Failed to update tray menu after sort", trayError); + // 托盘菜单更新失败不影响排序成功 + } + toast.success( t("provider.sortUpdated", { defaultValue: "排序已更新", diff --git a/src/hooks/useProviderActions.ts b/src/hooks/useProviderActions.ts index 0de665b..fb683a3 100644 --- a/src/hooks/useProviderActions.ts +++ b/src/hooks/useProviderActions.ts @@ -64,7 +64,16 @@ export function useProviderActions(activeApp: AppId) { const updateProvider = useCallback( async (provider: Provider) => { await updateProviderMutation.mutateAsync(provider); - await providersApi.updateTrayMenu(); + + // 更新托盘菜单(失败不影响主操作) + try { + await providersApi.updateTrayMenu(); + } catch (trayError) { + console.error( + "Failed to update tray menu after updating provider", + trayError, + ); + } }, [updateProviderMutation], ); diff --git a/src/lib/query/mutations.ts b/src/lib/query/mutations.ts index 1e3b1a1..cf88193 100644 --- a/src/lib/query/mutations.ts +++ b/src/lib/query/mutations.ts @@ -20,7 +20,17 @@ export const useAddProviderMutation = (appId: AppId) => { }, onSuccess: async () => { await queryClient.invalidateQueries({ queryKey: ["providers", appId] }); - await providersApi.updateTrayMenu(); + + // 更新托盘菜单(失败不影响主操作) + try { + await providersApi.updateTrayMenu(); + } catch (trayError) { + console.error( + "Failed to update tray menu after adding provider", + trayError, + ); + } + toast.success( t("notifications.providerAdded", { defaultValue: "供应商已添加", @@ -76,7 +86,17 @@ export const useDeleteProviderMutation = (appId: AppId) => { }, onSuccess: async () => { await queryClient.invalidateQueries({ queryKey: ["providers", appId] }); - await providersApi.updateTrayMenu(); + + // 更新托盘菜单(失败不影响主操作) + try { + await providersApi.updateTrayMenu(); + } catch (trayError) { + console.error( + "Failed to update tray menu after deleting provider", + trayError, + ); + } + toast.success( t("notifications.deleteSuccess", { defaultValue: "供应商已删除", @@ -104,7 +124,17 @@ export const useSwitchProviderMutation = (appId: AppId) => { }, onSuccess: async () => { await queryClient.invalidateQueries({ queryKey: ["providers", appId] }); - await providersApi.updateTrayMenu(); + + // 更新托盘菜单(失败不影响主操作) + try { + await providersApi.updateTrayMenu(); + } catch (trayError) { + console.error( + "Failed to update tray menu after switching provider", + trayError, + ); + } + toast.success( t("notifications.switchSuccess", { defaultValue: "切换供应商成功",