/** @module Cookies */
/**
* Get a cookie with a given name
* @author Moreno van Rooijen <moreno@notanumber.digital>
* @param {string} cookie_name name of the cookie
*
* @example
* import { getCookie } from "nan-design-system/utils";
* const cookie = getCookie("my_cookie");
*/
export function getCookie(cookie_name) {
if (typeof document !== "undefined") {
var name = cookie_name + "=";
var decodedCookie = decodeURIComponent(document.cookie);
var ca = decodedCookie.split(";");
for (var i = 0; i < ca.length; i++) {
var c = ca[i];
while (c.charAt(0) == " ") {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length);
}
}
}
return "";
}
/**
* Set a cookie
* @author Moreno van Rooijen <moreno@notanumber.digital>
* @param {string} cookie_name name of the cookie
* @param {string} cookie_value value of the cookie
* @param {float} exdays days until expiration
* @param {string} domain domain of the cookie
*
* @example
* import { setCookie } from "nan-design-system/utils";
* const cookie = setCookie("my_cookie", "my_cookie_value", 7);
*/
export function setCookie(cookie_name, cookie_value, exdays, domain = "") {
var d = new Date();
d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
var expires = "expires=" + d.toUTCString();
if (domain.length > 0) {
domain = "; domain=." + domain;
}
document.cookie = cookie_name + "=" + cookie_value + ";" + expires + ";path=/" + domain;
}
/**
* Remove cookie with a given name
* @author Moreno van Rooijen <moreno@notanumber.digital>
* @param {string} cookie_name name of the cookie
* @param {string} domain domain of the cookie
* @example
* import { removeCookie } from "nan-design-system/utils";
* const cookie = removeCookie("my_cookie");
*/
export function removeCookie(cookie_name, domain = "") {
setCookie(cookie_name, "", -1, domain);
}
Source