26 lines
509 B
TypeScript
26 lines
509 B
TypeScript
type CreateUploadTimer = (
|
|
timeout?: number,
|
|
callback?: () => void,
|
|
) => {
|
|
clear: () => void
|
|
set: () => boolean
|
|
}
|
|
|
|
export const createUploadTimer: CreateUploadTimer = (timeout = 0, callback = () => {}) => {
|
|
let timer = null
|
|
|
|
const clear = () => {
|
|
clearTimeout(timer)
|
|
}
|
|
|
|
const set = () => {
|
|
// Do not start a timer if zero timeout or it hasn't been set.
|
|
if (!timeout) return false
|
|
clear()
|
|
timer = setTimeout(callback, timeout)
|
|
return true
|
|
}
|
|
|
|
return { clear, set }
|
|
}
|