From c867cfdb326429bee203a63137041b0b91209ce2 Mon Sep 17 00:00:00 2001 From: farion1231 Date: Wed, 6 Aug 2025 07:46:59 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=8A=A0=E8=BD=BD=E7=8A=B6?= =?UTF-8?q?=E6=80=81=E6=8C=87=E7=A4=BA=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在切换供应商时显示加载状态 - 禁用操作按钮防止重复提交 - 提供视觉反馈改善用户体验 --- src/renderer/App.tsx | 5 +++++ src/renderer/components/ProviderList.tsx | 11 +++++++---- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/renderer/App.tsx b/src/renderer/App.tsx index c4e869c..c27b6d5 100644 --- a/src/renderer/App.tsx +++ b/src/renderer/App.tsx @@ -27,6 +27,7 @@ function App() { message: string type: 'success' | 'error' | 'info' } | null>(null) + const [isLoading, setIsLoading] = useState(false) // 加载供应商列表 useEffect(() => { @@ -88,7 +89,10 @@ function App() { title: '切换供应商', message: `确定要切换到"${provider.name}"吗?`, onConfirm: async () => { + setIsLoading(true) const success = await window.electronAPI.switchProvider(id) + setIsLoading(false) + if (success) { setCurrentProviderId(id) setMessageModal({ @@ -160,6 +164,7 @@ function App() { onSwitch={handleSwitchProvider} onDelete={handleDeleteProvider} onEdit={setEditingProviderId} + isLoading={isLoading} /> {configPath && ( diff --git a/src/renderer/components/ProviderList.tsx b/src/renderer/components/ProviderList.tsx index 89e42eb..8413db6 100644 --- a/src/renderer/components/ProviderList.tsx +++ b/src/renderer/components/ProviderList.tsx @@ -8,6 +8,7 @@ interface ProviderListProps { onSwitch: (id: string) => void onDelete: (id: string) => void onEdit: (id: string) => void + isLoading?: boolean } const ProviderList: React.FC = ({ @@ -15,7 +16,8 @@ const ProviderList: React.FC = ({ currentProviderId, onSwitch, onDelete, - onEdit + onEdit, + isLoading = false }) => { return (
@@ -52,20 +54,21 @@ const ProviderList: React.FC = ({