generic-functions/cookies.js

/**
 * @file Cookies Utility functions
 * @category Cookies Utils
 * @module CookiesUtils
 */

/**
 * Checks for presence of a cookie
 * @function getCookie
 * @param {string} cname - cookie name
 * @returns {string} - empty string or cookie name
 */
export const getCookie = (cname) => {
  let name = cname + "=";
  let decodedCookie = decodeURIComponent(document.cookie);
  let ca = decodedCookie.split(";");
  for (let i = 0; i < ca.length; i++) {
    let c = ca[i];
    while (c.charAt(0) == " ") {
      c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
      return c.substring(name.length, c.length);
    }
  }
  return "";
};

/**
 * Sets a cookie in the browser
 * @function setCookie
 * @param {string} cname - cookie name
 * @param {string} cvalue - cookie value
 * @param {number} exdays - days until expiry
 */
export const setCookie = (cname, cvalue, exdays) => {
  if (exdays) {
    const d = new Date();
    d.setTime(d.getTime() + exdays * 24 * 60 * 60 * 1000);
    let expires = "expires=" + d.toUTCString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
  } else {
    document.cookie = cname + "=" + cvalue + ";";
  }
};

/**
 * Sets a cookie in the browser
 * @function deleteCookie
 * @param {string} cname - cookie name
 */
export const deleteCookie = (cname) => {
  if (document.cookie.indexOf(cname) > -1) {
    document.cookie = cname + "=; expires=Thu, 01 Jan 1970 00:00:01 GMT;";
  }
};