import { useEffect, useState, useRef } from 'react'
import { useInterval } from '../common'
export const useScanElapsedTime = (scanning, elapsedTime) => {
const [elapsed, setElapsed] = useState(Number(elapsedTime) || 0)
const prevScanningRef = useRef(scanning)
useEffect(() => {
const prevScanning = prevScanningRef.current
const serverElapsed = Number(elapsedTime) || 0
if (scanning !== prevScanning) {
setElapsed(serverElapsed)
} else if (!scanning) {
setElapsed(serverElapsed)
}
prevScanningRef.current = scanning
}, [scanning, elapsedTime])
useInterval(() => setElapsed((prev) => prev + 1e9), scanning ? 1000 : null)
return elapsed
}