Это делает то, что вы ищете, сохраняя текущий цвет в браузере в течение одного дня. Код должен быть понятным, но просто спросите, если это не так.
(Протестировано в Chrome с бэкэндом Node, но должно быть хорошо в React)
let now = new Date().getTime(); // number of milliseconds since the 60's ended in London
const oneDay = 1000 * 60 * 60 * 24; // number of milliseconds in a day
if(localStorage.color && localStorage.expireTime && parseInt(localStorage.expireTime) > now){
let storedColor = localStorage.color; // or localStorage.getItem("color")
console.log(`Returning user -- Color from last visit is ${storedColor}`);
}
else{
let newColor = "green"; // Set your new color here
let newExpireTime = now + oneDay;
localStorage.setItem("color", newColor);
localStorage.setItem("expireTime", newExpireTime);
let dateString = new Date(newExpireTime).toLocaleString();
console.log(`First visit (since storage was cleared). New color, ${newColor}, will be replaced at ${dateString}`);
}
(Редактировать: удален вывод html и вместо этого добавлена информация в console.log,
удален localStorage.clear (), который был для отладки)