From fe9cf0e41c08afafb3741ae949fd85711f1863fb Mon Sep 17 00:00:00 2001 From: Daniel Vassallo Date: Mon, 30 Sep 2019 18:41:39 -0700 Subject: [PATCH] Migrate JS to ES6 --- package-lock.json | 17 +++++++++++++++++ package.json | 1 + src/index.js | 45 ++++++++++++++++++++++----------------------- 3 files changed, 40 insertions(+), 23 deletions(-) diff --git a/package-lock.json b/package-lock.json index 46f20e6..812826b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -805,6 +805,23 @@ "semver": "^5.5.0" } }, + "@babel/runtime": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.6.2.tgz", + "integrity": "sha512-EXxN64agfUqqIGeEjI5dL5z0Sw0ZwWo1mLTi4mQowCZ42O59b7DRpZAnTC6OqdF28wMBMFKNb/4uFGrVaigSpg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.2" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.13.3", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", + "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", + "dev": true + } + } + }, "@babel/template": { "version": "7.6.0", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.6.0.tgz", diff --git a/package.json b/package.json index b83a3c9..b66a7a8 100644 --- a/package.json +++ b/package.json @@ -11,6 +11,7 @@ "author": "Daniel Vassallo", "license": "MIT", "devDependencies": { + "@babel/runtime": "^7.4.5", "@babel/cli": "^7.4.4", "@babel/core": "^7.4.5", "@babel/plugin-transform-runtime": "^7.4.4", diff --git a/src/index.js b/src/index.js index 18e54ad..b73edcb 100644 --- a/src/index.js +++ b/src/index.js @@ -1,32 +1,14 @@ import './style.css' -var serialize = function (form) { - var serialized = '' - - for (var i = 0; i < form.elements.length; i++) { - - var field = form.elements[i] - - if (!field.name || field.disabled || field.type === 'file' || field.type === 'reset' || field.type === 'submit' || field.type === 'button') continue - - if ((field.type !== 'checkbox' && field.type !== 'radio') || field.checked) { - serialized += '&' + encodeURIComponent(field.name) + "=" + encodeURIComponent(field.value) - } - } - - return serialized; -} - window.displayMailChimpStatus = function (data) { if (!data.result || !data.msg) return - var mcStatus = document.querySelector('.mc-status') + const mcStatus = document.querySelector('.mc-status') if (!mcStatus) return mcStatus.innerHTML = data.msg - //mcStatus.addAttribute('tabindex', '-1') mcStatus.focus() mcStatus.classList.remove('hidden') @@ -41,15 +23,32 @@ window.displayMailChimpStatus = function (data) { mcStatus.classList.add('mc-success') } -var submitMailChimpForm = function (form) { - var url = form.getAttribute('action') +const serialize = function (form) { + let serialized = '' + + for (let i = 0; i < form.elements.length; i++) { + + const field = form.elements[i] + + if (!field.name || field.disabled || field.type === 'file' || field.type === 'reset' || field.type === 'submit' || field.type === 'button') continue + + if ((field.type !== 'checkbox' && field.type !== 'radio') || field.checked) { + serialized += '&' + encodeURIComponent(field.name) + "=" + encodeURIComponent(field.value) + } + } + + return serialized; +} + +const submitMailChimpForm = function (form) { + let url = form.getAttribute('action') url = url.replace('/post?u=', '/post-json?u=') url += serialize(form) + '&c=displayMailChimpStatus' - var script = window.document.createElement('script') + const script = window.document.createElement('script') script.src = url - var ref = window.document.getElementsByTagName('script')[0] + const ref = window.document.getElementsByTagName('script')[0] ref.parentNode.insertBefore(script, ref) script.onload = function () {