重构状态检测功能:清理复杂逻辑,保留UI结构
## 主要变更
- 移除所有Claude命令调用和进程管理逻辑
- 简化检测函数,暂时返回"功能开发中"状态
- 添加单独检查状态按钮和相关UI交互
- 保留完整的供应商管理功能(添加、编辑、删除、切换)
## 技术优化
- 删除复杂的超时机制、进程监听、错误处理
- 移除axios依赖和HTTP请求相关代码
- 清理竞态条件和队列管理逻辑
- 保持清晰的UI状态管理
## UI改进
- 添加橙色主题的单独检查按钮
- 增强检查状态的视觉反馈(🔄 进度指示器)
- 保留所有状态显示逻辑等待功能重新实现
This commit is contained in:
@@ -10,7 +10,7 @@ function App() {
|
||||
const [currentProviderId, setCurrentProviderId] = useState<string>('')
|
||||
const [statuses, setStatuses] = useState<Record<string, ProviderStatus>>({})
|
||||
const [isAddModalOpen, setIsAddModalOpen] = useState(false)
|
||||
const [isRefreshing, setIsRefreshing] = useState(false)
|
||||
const [checkingStatus, setCheckingStatus] = useState<Record<string, boolean>>({})
|
||||
const [configPath, setConfigPath] = useState<string>('')
|
||||
const [editingProviderId, setEditingProviderId] = useState<string | null>(null)
|
||||
|
||||
@@ -34,20 +34,30 @@ function App() {
|
||||
}
|
||||
|
||||
const checkAllStatuses = async () => {
|
||||
if (Object.keys(providers).length === 0) return
|
||||
// 功能开发中
|
||||
alert('状态检查功能开发中')
|
||||
}
|
||||
|
||||
const checkSingleStatus = async (providerId: string) => {
|
||||
const provider = providers[providerId]
|
||||
if (!provider) return
|
||||
|
||||
setCheckingStatus(prev => ({ ...prev, [providerId]: true }))
|
||||
|
||||
setIsRefreshing(true)
|
||||
const newStatuses: Record<string, ProviderStatus> = {}
|
||||
|
||||
await Promise.all(
|
||||
Object.values(providers).map(async (provider) => {
|
||||
const status = await window.electronAPI.checkStatus(provider)
|
||||
newStatuses[provider.id] = status
|
||||
})
|
||||
)
|
||||
|
||||
setStatuses(newStatuses)
|
||||
setIsRefreshing(false)
|
||||
try {
|
||||
// 暂时显示开发中状态
|
||||
const status: ProviderStatus = {
|
||||
isOnline: false,
|
||||
responseTime: -1,
|
||||
lastChecked: new Date(),
|
||||
error: '功能开发中'
|
||||
}
|
||||
setStatuses(prev => ({ ...prev, [providerId]: status }))
|
||||
} catch (error) {
|
||||
console.error('检查状态失败:', error)
|
||||
} finally {
|
||||
setCheckingStatus(prev => ({ ...prev, [providerId]: false }))
|
||||
}
|
||||
}
|
||||
|
||||
const handleAddProvider = async (provider: Omit<Provider, 'id'>) => {
|
||||
@@ -96,10 +106,9 @@ function App() {
|
||||
<div className="header-actions">
|
||||
<button
|
||||
className="refresh-btn"
|
||||
onClick={checkAllStatuses}
|
||||
disabled={isRefreshing}
|
||||
onClick={checkAllStatuses}
|
||||
>
|
||||
{isRefreshing ? '检查中...' : '检查状态'}
|
||||
检查状态(开发中)
|
||||
</button>
|
||||
<button
|
||||
className="add-btn"
|
||||
@@ -115,9 +124,11 @@ function App() {
|
||||
providers={providers}
|
||||
currentProviderId={currentProviderId}
|
||||
statuses={statuses}
|
||||
checkingStatus={checkingStatus}
|
||||
onSwitch={handleSwitchProvider}
|
||||
onDelete={handleDeleteProvider}
|
||||
onEdit={setEditingProviderId}
|
||||
onCheckStatus={checkSingleStatus}
|
||||
/>
|
||||
|
||||
{configPath && (
|
||||
|
||||
Reference in New Issue
Block a user