A React Hooks utility library containing popular customized hooks
What's your favorite dish?
npm i react-recipes --save
yarn add react-recipes
Name | Returns | Arguments |
---|---|---|
🍡 useAdjustColor |
color | (percentage, color1, color2: null, linearBlend: false) |
🥟 useArray |
{ value, setValue, removeById, removeIndex, clear } | (initialValue) |
🔄 useAsync |
{ error, execute, pending, value } | (asyncFunction, immediate: true) |
🍪 useCookie |
[cookieValue, updateCookie, deleteCookie] | (cookieName, initialValue) |
🥠 useCopyClipboard |
[isCopied, setIsCopied] | (duration: 2000) |
🍩 useDarkMode |
[enabled, setEnabledState] | - |
🍜 useDebounce |
debouncedValue | (value, delay) |
🥡 useDimensions |
[ref, dimensions, node] | (liveMeasure: true, delay: 250, initialDimensions: {}, effectDependencies: []) |
🍳 useEventListener |
- | (eventName, handle, element: window) |
🌮 useFullScreen |
{ fullScreen, open, close, toggle } | (element: document.documentElement) |
🌯 useGeolocation |
{ latitude, longitude, timestamp, accuracy, error } | (watch: false, settings: {enableHighAccuracy: false, timeout: Infinity, maximumAge: 0}) |
🌭 useHover |
[callbackRef, value] | - |
🍦 useInterval |
- | (callback, delay, runOnLoad: false, effectDependencies: []) |
🍐 useIsClient |
isClient | - |
🥧 useKeyPress |
keyPressed | (targetKey) |
🍱 useLocalStorage |
[storedValue, setValue] | (key, initialValue) |
📍 useLocation |
{ push, replace, pathname, search } | - |
🍋 useLockBodyScroll |
- | - |
🍉 useMedia |
value | (queries, values, defaultValue) |
🥭 useMultiKeyPress |
keysPressed | (targetKey) |
🔔 useNotification |
fireNotify | (title, options) |
🥑 useOnClickOutside |
- | (ref, callback) |
🥒 useOnlineStatus |
onlineStatus | - |
🍿 usePrevious |
previous | (value) |
🖨 usePrint |
{ ref, handlePrint } | (style = {}) |
❓ useQueryParams |
{ getParams, setParams } | - |
🍣 useScript |
[loaded, error] | (src) |
🍖 useSpeechRecognition |
{ supported, listen, listening, stop } | ({ onEnd, onResult, onError }) |
🍗 useSpeechSynthesis |
{ supported, speak, speaking, cancel, voices, pause, resume } | ({ onEnd, onResult, onError, onBoundary, onPause, onResume }) |
🍏 useThrottle |
throttledValue | (value, ms: 250) |
🍷 useWhyDidYouUpdate |
- | (name, props) |
🥖 useWindowScroll |
{ x, y } | - |
🥮 useWindowSize |
{ height, width } | (initialWidth, initialHeight) |
🥝 useWorker |
worker instance | (scriptPath, workerOptions, attributes) |