JSFiddle - React, Tailwind, and code Playground

by Boba Poshtar

JavaScript

function showSubscribeForm(){
	let cookieDate = /nextDateForSubscribe=([0-9-]+);/.match(document.cookie);
  if (cookieDate) {
  	coocieDate = (new Date(cookieDate[1])).valueOf(); // в мілісекундах
    let today = Date.now(); // в мілісекундах поточний час
    if (cookieDate > today) return; // дата в куках є і не просрочена
  }
  let subscribeForm = document.getElementById('subscribeForm');
  subscribeForm.style.opacity = 0;
  subscribeForm.style.display = 'block';
  let opacity = 0;
  let timerId = setInterval(showForm, 20);
  function showForm(){
  	if (opacity > 1) {
    	subscribeForm.style.opacity = 1;
      clearInterval(timerId);
    }
    subscribeForm.style.opacity = opacity;
    opacity += 0.02;
  }
}

function closeForm(months){
	let date = new Date();
  date.setMonth(date.getMonth() + months);
  let dateStr = date.getFullYear() + '-' + add0(date.getMonth() + 1) + '-' + add0(date.getDate()); 
  document.cookie = 'nextDateForSubscribe=' + dateStr;
  document.cookie = "expires=" + (new Date('2050-01-01')).toUTCString();
  document.cookie = "path=/";
}

// при закритті форми виконуємо closeForm(1);
// при сабскрайбі виконуємо closeForm(12);