Fix: disabel document fecting in backup
- Replace useTabVisibility with useSettingsStore - Remove unused initialLoadRef - Simplify document fetching logic
This commit is contained in:
parent
32dcbec7b5
commit
bb7074d793
1 changed files with 9 additions and 12 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
import { useState, useEffect, useCallback, useRef } from 'react'
|
import { useState, useEffect, useCallback } from 'react'
|
||||||
import { useTranslation } from 'react-i18next'
|
import { useTranslation } from 'react-i18next'
|
||||||
import { useTabVisibility } from '@/contexts/useTabVisibility'
|
import { useSettingsStore } from '@/stores/settings'
|
||||||
import Button from '@/components/ui/Button'
|
import Button from '@/components/ui/Button'
|
||||||
import {
|
import {
|
||||||
Table,
|
Table,
|
||||||
|
|
@ -27,9 +27,7 @@ export default function DocumentManager() {
|
||||||
const { t } = useTranslation()
|
const { t } = useTranslation()
|
||||||
const health = useBackendState.use.health()
|
const health = useBackendState.use.health()
|
||||||
const [docs, setDocs] = useState<DocsStatusesResponse | null>(null)
|
const [docs, setDocs] = useState<DocsStatusesResponse | null>(null)
|
||||||
const { isTabVisible } = useTabVisibility()
|
const currentTab = useSettingsStore.use.currentTab()
|
||||||
const isDocumentsTabVisible = isTabVisible('documents')
|
|
||||||
const initialLoadRef = useRef(false)
|
|
||||||
|
|
||||||
const fetchDocuments = useCallback(async () => {
|
const fetchDocuments = useCallback(async () => {
|
||||||
try {
|
try {
|
||||||
|
|
@ -53,13 +51,12 @@ export default function DocumentManager() {
|
||||||
}
|
}
|
||||||
}, [setDocs, t])
|
}, [setDocs, t])
|
||||||
|
|
||||||
// Only fetch documents when the tab becomes visible for the first time
|
// Fetch documents when the tab becomes visible
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (isDocumentsTabVisible && !initialLoadRef.current) {
|
if (currentTab === 'documents') {
|
||||||
fetchDocuments()
|
fetchDocuments()
|
||||||
initialLoadRef.current = true
|
|
||||||
}
|
}
|
||||||
}, [isDocumentsTabVisible, fetchDocuments])
|
}, [currentTab, fetchDocuments])
|
||||||
|
|
||||||
const scanDocuments = useCallback(async () => {
|
const scanDocuments = useCallback(async () => {
|
||||||
try {
|
try {
|
||||||
|
|
@ -70,9 +67,9 @@ export default function DocumentManager() {
|
||||||
}
|
}
|
||||||
}, [t])
|
}, [t])
|
||||||
|
|
||||||
// Only set up polling when the tab is visible and health is good
|
// Set up polling when the documents tab is active and health is good
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!isDocumentsTabVisible || !health) {
|
if (currentTab !== 'documents' || !health) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -85,7 +82,7 @@ export default function DocumentManager() {
|
||||||
}, 5000)
|
}, 5000)
|
||||||
|
|
||||||
return () => clearInterval(interval)
|
return () => clearInterval(interval)
|
||||||
}, [health, fetchDocuments, t, isDocumentsTabVisible])
|
}, [health, fetchDocuments, t, currentTab])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Card className="!size-full !rounded-none !border-none">
|
<Card className="!size-full !rounded-none !border-none">
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue