@darwish/hooks-core
Version:
26 lines (25 loc) • 961 B
JavaScript
import { useCallback, useState } from 'react';
import jsCookie from 'js-cookie';
/**
* @description A hook to get, set and delete cookie
* @param cookieName cookie name
* @returns UseCookieOutput A tuple with three elements
* @property UseCookieOutput[0] cookie value
* @property UseCookieOutput[1] updateCookie
* @property UseCookieOutput[2] deleteCookie
* @example
* updateCookie('cookieValue');
* deleteCookie();
*/
export default function useCookie(cookieName) {
var _a = useState(function () { return jsCookie.get(cookieName) || null; }), cookieValue = _a[0], setCookieValue = _a[1];
var updateCookie = useCallback(function (value, option) {
jsCookie.set(cookieName, value, option);
setCookieValue(value);
}, [cookieName]);
var deleteCookie = useCallback(function () {
jsCookie.remove(cookieName);
setCookieValue(null);
}, [cookieName]);
return [cookieValue, updateCookie, deleteCookie];
}