1
0
mirror of https://github.com/uetchy/namae.git synced 2025-07-01 22:10:04 +09:00
namae/web/src/util/hooks.js

19 lines
459 B
JavaScript
Raw Normal View History

2019-07-30 23:27:28 +09:00
import { useState, useEffect } from 'react'
2019-08-06 02:07:05 +09:00
export function useDeferredState(duration = 1000, initialValue = undefined) {
2019-08-03 16:44:48 +09:00
const [response, setResponse] = useState(initialValue)
const [innerValue, setInnerValue] = useState(initialValue)
2019-07-30 23:27:28 +09:00
useEffect(() => {
const fn = setTimeout(() => {
setResponse(innerValue)
}, duration)
return () => {
clearTimeout(fn)
}
}, [duration, innerValue])
return [response, setInnerValue]
}