Skip to content

Commit 53e10ce

Browse files
committed
fix(modal): clear auto-close timeout on manual close/retry
- Clear and nullify closeTimeoutRef in handleClose() - Clear and nullify closeTimeoutRef in handleRetry() - Add effect to clear timeout when isOpen becomes false - Prevents stale callbacks from firing after manual interaction
1 parent fc17c5f commit 53e10ce

1 file changed

Lines changed: 17 additions & 0 deletions

File tree

frontend/src/components/IndexingProgressModal.tsx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,16 +69,33 @@ export function IndexingProgressModal({
6969
return () => {
7070
if (closeTimeoutRef.current) {
7171
clearTimeout(closeTimeoutRef.current)
72+
closeTimeoutRef.current = null
7273
}
7374
}
7475
}, [phase, onClose, reset])
7576

77+
// Clear timeout when modal closes
78+
useEffect(() => {
79+
if (!isOpen && closeTimeoutRef.current) {
80+
clearTimeout(closeTimeoutRef.current)
81+
closeTimeoutRef.current = null
82+
}
83+
}, [isOpen])
84+
7685
const handleClose = () => {
86+
if (closeTimeoutRef.current) {
87+
clearTimeout(closeTimeoutRef.current)
88+
closeTimeoutRef.current = null
89+
}
7790
reset()
7891
onClose()
7992
}
8093

8194
const handleRetry = () => {
95+
if (closeTimeoutRef.current) {
96+
clearTimeout(closeTimeoutRef.current)
97+
closeTimeoutRef.current = null
98+
}
8299
reset()
83100
onRetry?.()
84101
}

0 commit comments

Comments
 (0)