This commit is contained in:
parent
90a7fbd0b0
commit
725409a24b
|
|
@ -127,7 +127,7 @@ export const giteaApi = {
|
|||
page,
|
||||
limit
|
||||
},
|
||||
timeout: 30000 // 处理缓慢的 git 操作
|
||||
timeout: 60000 // 处理缓慢的 git 操作
|
||||
});
|
||||
return response.data;
|
||||
} catch (error) {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,6 @@
|
|||
import { useState, useEffect, useCallback, useMemo } from 'react'
|
||||
import {
|
||||
Folder,
|
||||
RefreshCw,
|
||||
Plus,
|
||||
FileCode,
|
||||
FileText,
|
||||
|
|
@ -73,7 +72,7 @@ interface TreeItem {
|
|||
}
|
||||
|
||||
export default function ProjectLibrary() {
|
||||
const { success, error: showError } = useToast()
|
||||
const { toast, success, error: showError } = useToast()
|
||||
const { startDownload } = useDownloadManager()
|
||||
|
||||
// 使用缓存Hook获取仓库列表
|
||||
|
|
@ -81,9 +80,7 @@ export default function ProjectLibrary() {
|
|||
const cacheConfig = useMemo(() => ({ namespace: 'projects' }), [])
|
||||
|
||||
const {
|
||||
data: repos,
|
||||
loading: repoLoading,
|
||||
refresh: refreshRepos
|
||||
data: repos
|
||||
} = useCache<GiteaRepository[]>(
|
||||
'project-library-repos', // 缓存键
|
||||
fetchRepos, // 数据获取函数
|
||||
|
|
@ -212,15 +209,20 @@ export default function ProjectLibrary() {
|
|||
return
|
||||
}
|
||||
|
||||
console.log('调用API获取提交记录')
|
||||
const data = await giteaApi.getRepoCommits(selectedRepo.owner.username, selectedRepo.name, 1, 5)
|
||||
console.log(`调用API获取提交记录: owner=${selectedRepo.owner.username}, repo=${selectedRepo.name}`)
|
||||
const data = await giteaApi.getRepoCommits(selectedRepo.owner.username, selectedRepo.name, 1, 20)
|
||||
setCommits(data)
|
||||
|
||||
// 缓存提交记录
|
||||
await cacheUtils.setJSON(cacheKey, data, { namespace: 'projects', maxAge: 1000 * 60 * 5 }) // 5分钟缓存
|
||||
} catch (error) {
|
||||
} catch (error: any) {
|
||||
console.error("Failed to fetch commits:", error)
|
||||
setCommits([])
|
||||
|
||||
// 如果是超时错误,给用户明确提示
|
||||
if (error.code === 'ECONNABORTED' || error.message?.includes('timeout')) {
|
||||
toast(`获取提交记录超时 (60s),请检查网络或稍后重试`, { type: 'error' })
|
||||
}
|
||||
} finally {
|
||||
setCommitsLoading(false)
|
||||
}
|
||||
|
|
@ -749,14 +751,6 @@ export default function ProjectLibrary() {
|
|||
<GitCommitHorizontal className="w-4 h-4" />
|
||||
Git同步
|
||||
</Button>
|
||||
<Button
|
||||
variant="ghost"
|
||||
className="gap-2 h-9 text-slate-600 hover:text-[#0e7490] hover:bg-[#e0f2fe]"
|
||||
onClick={refreshRepos}
|
||||
>
|
||||
<RefreshCw className={cn("w-4 h-4", repoLoading && "animate-spin")} />
|
||||
刷新
|
||||
</Button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -773,8 +767,24 @@ export default function ProjectLibrary() {
|
|||
|
||||
<div className="space-y-2">
|
||||
<div className="text-slate-400 text-xs">最后提交</div>
|
||||
<div className="text-slate-700 font-medium truncate" title="修复光学渲染bug(a87b9c3)">
|
||||
修复光学渲染bug(a87b9c3)
|
||||
<div className="text-slate-700 font-medium truncate">
|
||||
{commitsLoading ? (
|
||||
<span className="text-slate-400 italic">加载中...</span>
|
||||
) : commits.length > 0 ? (
|
||||
<div className="flex flex-col">
|
||||
<span className="truncate" title={`${commits[0].commit.message} (${commits[0].sha.substring(0, 7)})`}>
|
||||
{commits[0].commit.message}
|
||||
<span className="ml-2 font-mono text-[10px] text-[#0e7490] bg-cyan-50 px-1 rounded">
|
||||
{commits[0].sha.substring(0, 7)}
|
||||
</span>
|
||||
</span>
|
||||
<span className="text-[10px] text-slate-400 mt-0.5">
|
||||
{new Date(commits[0].commit.author.date).toLocaleString()}
|
||||
</span>
|
||||
</div>
|
||||
) : (
|
||||
<span className="text-slate-400 italic">暂无记录</span>
|
||||
)}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
|
@ -842,7 +852,7 @@ export default function ProjectLibrary() {
|
|||
<GitCommitHorizontal className="w-4 h-4 text-[#0e7490]" />
|
||||
Git提交记录
|
||||
</h3>
|
||||
<div className="bg-slate-50 border border-slate-100 rounded-lg divide-y divide-slate-100">
|
||||
<div className="bg-slate-50 border border-slate-100 rounded-lg divide-y divide-slate-100 max-h-[420px] overflow-y-auto">
|
||||
{commitsLoading ? (
|
||||
<div className="p-4 text-sm text-slate-400 text-center">加载提交记录中...</div>
|
||||
) : commits.length === 0 ? (
|
||||
|
|
|
|||
Loading…
Reference in New Issue