@@ -26,42 +26,47 @@ export default function LogsPage() {
2626 const [ currentPage , setCurrentPage ] = useState ( 1 )
2727
2828 // 分页获取日志
29- const fetchLogs = async ( page = 1 , append = false ) => {
30- try {
31- if ( append ) {
32- setLoadingMore ( true )
33- } else {
34- setLoading ( true )
35- }
36-
37- const params = new URLSearchParams ( {
38- page : page . toString ( ) ,
39- limit : '10' ,
40- } )
41-
42- const response = await fetch ( `/api/logs?${ params } ` )
43- const data = await response . json ( )
44-
45- if ( response . ok ) {
29+ const fetchLogs = useCallback (
30+ async ( page = 1 , append = false ) => {
31+ try {
4632 if ( append ) {
47- setLogs ( ( prev ) => [ ... prev , ... data . logs ] )
33+ setLoadingMore ( true )
4834 } else {
49- setLogs ( data . logs )
35+ setLoading ( true )
5036 }
5137
52- // 检查是否还有更多页面
53- setHasMore ( data . logs . length === 10 && data . pagination . totalPages > page )
54- } else {
55- errorToast ( '获取日志失败' , { description : data . error } )
38+ const params = new URLSearchParams ( {
39+ page : page . toString ( ) ,
40+ limit : '10' ,
41+ } )
42+
43+ const response = await fetch ( `/api/logs?${ params } ` )
44+ const data = await response . json ( )
45+
46+ if ( response . ok ) {
47+ if ( append ) {
48+ setLogs ( ( prev ) => [ ...prev , ...data . logs ] )
49+ } else {
50+ setLogs ( data . logs )
51+ }
52+
53+ // 检查是否还有更多页面
54+ setHasMore (
55+ data . logs . length === 10 && data . pagination . totalPages > page
56+ )
57+ } else {
58+ errorToast ( '获取日志失败' , { description : data . error } )
59+ }
60+ } catch ( error ) {
61+ console . error ( '获取日志失败:' , error )
62+ errorToast ( '获取日志失败' , { description : '网络错误,请稍后重试' } )
63+ } finally {
64+ setLoading ( false )
65+ setLoadingMore ( false )
5666 }
57- } catch ( error ) {
58- console . error ( '获取日志失败:' , error )
59- errorToast ( '获取日志失败' , { description : '网络错误,请稍后重试' } )
60- } finally {
61- setLoading ( false )
62- setLoadingMore ( false )
63- }
64- }
67+ } ,
68+ [ errorToast ]
69+ )
6570
6671 // 分页加载更多日志
6772 const loadMore = useCallback ( ( ) => {
@@ -70,7 +75,7 @@ export default function LogsPage() {
7075 setCurrentPage ( nextPage )
7176 fetchLogs ( nextPage , true )
7277 }
73- } , [ currentPage , loadingMore , hasMore ] )
78+ } , [ currentPage , loadingMore , hasMore , fetchLogs ] )
7479
7580 // 分页滚动加载更多日志
7681 useEffect ( ( ) => {
@@ -99,7 +104,7 @@ export default function LogsPage() {
99104 useEffect ( ( ) => {
100105 // 初始化加载第一页日志
101106 fetchLogs ( 1 , false )
102- } , [ ] )
107+ } , [ fetchLogs ] )
103108
104109 const formatTime = ( dateString : string ) => {
105110 const date = new Date ( dateString )
0 commit comments