@darwish/hooks-core
Version:
32 lines (31 loc) • 1.27 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = require("react");
var js_cookie_1 = __importDefault(require("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();
*/
function useCookie(cookieName) {
var _a = (0, react_1.useState)(function () { return js_cookie_1.default.get(cookieName) || null; }), cookieValue = _a[0], setCookieValue = _a[1];
var updateCookie = (0, react_1.useCallback)(function (value, option) {
js_cookie_1.default.set(cookieName, value, option);
setCookieValue(value);
}, [cookieName]);
var deleteCookie = (0, react_1.useCallback)(function () {
js_cookie_1.default.remove(cookieName);
setCookieValue(null);
}, [cookieName]);
return [cookieValue, updateCookie, deleteCookie];
}
exports.default = useCookie;