diff --git a/assets/js/src/form_editor/store/controls.jsx b/assets/js/src/form_editor/store/controls.jsx index 19201b8a27..84bc65f341 100644 --- a/assets/js/src/form_editor/store/controls.jsx +++ b/assets/js/src/form_editor/store/controls.jsx @@ -1,6 +1,7 @@ import { select, dispatch } from '@wordpress/data'; import MailPoet from 'mailpoet'; import { merge } from 'lodash'; +import Cookies from 'js-cookie'; import { createBlock, unregisterBlockType } from '@wordpress/blocks'; import { blocksToFormBodyFactory } from './blocks_to_form_body.jsx'; import formatCustomFieldBlockName from '../blocks/format_custom_field_block_name.jsx'; @@ -59,6 +60,7 @@ export default { data: requestData, }).done(() => { dispatch('mailpoet-form-editor').saveFormDone(); + Cookies.remove('popup_form_dismissed', { path: '/' }); }).fail((response) => { dispatch('mailpoet-form-editor').saveFormFailed(formatApiErrorMessage(response)); }); diff --git a/assets/js/src/public.jsx b/assets/js/src/public.jsx index bfd21629a0..423a1bf70f 100644 --- a/assets/js/src/public.jsx +++ b/assets/js/src/public.jsx @@ -1,30 +1,8 @@ import MailPoet from 'mailpoet'; import jQuery from 'jquery'; +import Cookies from 'js-cookie'; import 'parsleyjs'; -function setCookie(name, value, days) { - let expires = ''; - if (days) { - const date = new Date(); - date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); - expires = `; expires=${date.toUTCString()}`; - } - document.cookie = `${name}=${value}${expires}; path=/`; -} - -function getCookie(name) { - const nameEQ = `${name}=`; - const cookieParts = document.cookie.split(';'); - for (let i = 0; i < cookieParts.length; i += 1) { - let cookiePart = cookieParts[i]; - while (cookiePart.charAt(0) === ' ') cookiePart = cookiePart.substring(1, cookiePart.length); - if (cookiePart.indexOf(nameEQ) === 0) { - return cookiePart.substring(nameEQ.length, cookiePart.length); - } - } - return null; -} - jQuery(($) => { window.reCaptchaCallback = function reCaptchaCallback() { $('.mailpoet_recaptcha').each((index, element) => { @@ -90,7 +68,7 @@ jQuery(($) => { const closeForm = (formDiv) => { formDiv.removeClass('active'); formDiv.prev('.mailpoet_form_popup_overlay').removeClass('active'); - setCookie('popup_form_dismissed', '1', 365); + Cookies.set('popup_form_dismissed', '1', { expires: 365, path: '/' }); }; $('.mailpoet_form_close_icon').click((event) => { const closeIcon = $(event.target); @@ -99,14 +77,14 @@ jQuery(($) => { }); $('div.mailpoet_form_fixed_bar').each((index, element) => { - const cookieValue = getCookie('popup_form_dismissed'); + const cookieValue = Cookies.get('popup_form_dismissed'); if (cookieValue === '1') return; const formDiv = $(element); showForm(formDiv); }); $('div.mailpoet_form_popup').each((index, element) => { - const cookieValue = getCookie('popup_form_dismissed'); + const cookieValue = Cookies.get('popup_form_dismissed'); if (cookieValue === '1') return; const formDiv = $(element); diff --git a/package-lock.json b/package-lock.json index 26f0d39df2..c90bb8a3ea 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10804,6 +10804,11 @@ "integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==", "dev": true }, + "js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" + }, "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", diff --git a/package.json b/package.json index b05b8faf2b..14970b1950 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,7 @@ "html2canvas": "^1.0.0-alpha.12", "interact.js": "~1.2.8", "jquery": "^3.4.1", + "js-cookie": "^2.2.1", "lodash": "^4.17.15", "moment": "^2.22.1", "mousetrap": "^1.6.3",