@@ -402,24 +402,25 @@ function LogsList({
402402 return ;
403403 }
404404
405- const existingIds = new Set ( accumulatedLogs . map ( ( log ) => log . id ) ) ;
406- const newLogs = fetcher . data . logs . filter ( ( log ) => ! existingIds . has ( log . id ) ) ;
407-
408405 if ( isCheckingForNewRef . current ) {
409406 // "Check for new" - prepend new logs, don't update cursor
410- if ( newLogs . length > 0 ) {
411- setAccumulatedLogs ( ( prev ) => [ ...newLogs , ...prev ] ) ;
412- }
407+ setAccumulatedLogs ( ( prev ) => {
408+ const existingIds = new Set ( prev . map ( ( log ) => log . id ) ) ;
409+ const newLogs = fetcher . data ! . logs . filter ( ( log ) => ! existingIds . has ( log . id ) ) ;
410+ return newLogs . length > 0 ? [ ...newLogs , ...prev ] : prev ;
411+ } ) ;
413412 isCheckingForNewRef . current = false ;
414413 } else {
415414 // "Load more" - append logs and update cursor
416- if ( newLogs . length > 0 ) {
417- setAccumulatedLogs ( ( prev ) => [ ...prev , ...newLogs ] ) ;
418- }
415+ setAccumulatedLogs ( ( prev ) => {
416+ const existingIds = new Set ( prev . map ( ( log ) => log . id ) ) ;
417+ const newLogs = fetcher . data ! . logs . filter ( ( log ) => ! existingIds . has ( log . id ) ) ;
418+ return newLogs . length > 0 ? [ ...prev , ...newLogs ] : prev ;
419+ } ) ;
419420 setNextCursor ( fetcher . data . pagination . next ) ;
420421 }
421422 }
422- } , [ fetcher . data , fetcher . state , accumulatedLogs , location . search ] ) ;
423+ } , [ fetcher . data , fetcher . state , location . search ] ) ;
423424
424425 // Build resource URL for loading more
425426 const loadMoreUrl = useMemo ( ( ) => {
0 commit comments