From ea62de33d0b03532a5042150e4a1a98c1c01041c Mon Sep 17 00:00:00 2001 From: Michel Roux Date: Fri, 1 Mar 2024 09:28:58 +0100 Subject: [PATCH] feat(settings): :technologist: add cookie lib --- src/utils/cookies.js | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/utils/cookies.js diff --git a/src/utils/cookies.js b/src/utils/cookies.js new file mode 100644 index 0000000..e112b1e --- /dev/null +++ b/src/utils/cookies.js @@ -0,0 +1,28 @@ +// https://grafikart.fr/tutoriels/javascript-cookies-2079 +/** + * Récupère les données associées à un cookie + * @param {string} name Nom du cookie à récupérer + * @return {string|null} + */ +export const getCookie = (name) => { + const cookies = document.cookie.split('; ') + const value = cookies + .find(c => c.startsWith(name + '=')) + ?.split('=')[1] + if (value === undefined) { + return null + } + return decodeURIComponent(value) +} + +/** + * Créer ou modifie la valeur d'un cookie avec une durée spécifique + * @param {string} name Nom du cookie + * @param {string} value Value du cookie + * @param {number} days Durée de vie du cookie (en jours) + */ +export const setCookie = (name, value, days) => { + const date = new Date() + date.setDate(date.getDate() + days) + document.cookie = `${name}=${encodeURIComponent(value)}; expires=${date.toUTCString()};` +}