You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
monitor-doc/resources/js/Hooks/index.js

31 lines
695 B
JavaScript

2 years ago
import { useState, useEffect } from 'react'
export function useDebounce(value, delay) {
const [debouncedValue, setDebouncedValue] = useState(value)
useEffect(() => {
const handler = setTimeout(() => {
setDebouncedValue(value)
}, delay)
return () => {
clearTimeout(handler)
}
}, [value, delay])
return debouncedValue
}
export function useModalState(state = false) {
const [isOpen, setIsOpen] = useState(state)
const toggle = () => {
setIsOpen(!isOpen)
}
const [data, setData] = useState(null)
return {
isOpen,
toggle,
setIsOpen,
data,
setData,
}
}