diff --git a/assets/scripts/customizer.js b/assets/scripts/customizer.js index 76e3b56..5f97349 100644 --- a/assets/scripts/customizer.js +++ b/assets/scripts/customizer.js @@ -1,8 +1,5 @@ -(function($) { - // Site title - wp.customize('blogname', function(value) { - value.bind(function(to) { - $('.brand').text(to); - }); - }); -})(jQuery); +import $ from 'jquery'; + +wp.customize('blogname', (value) => { + value.bind((to) => $('.brand').text(to)) +}); diff --git a/assets/scripts/main.js b/assets/scripts/main.js index 25558e2..bd72382 100644 --- a/assets/scripts/main.js +++ b/assets/scripts/main.js @@ -1,5 +1,8 @@ import $ from 'jquery'; import Router from './util/router'; +import Common from './routes/Common'; +import Home from './routes/Home'; +import About from './routes/About'; // Import Bootstrap import 'bootstrap/dist/js/umd/util.js'; @@ -16,34 +19,14 @@ import 'bootstrap/dist/js/umd/popover.js'; // Use this variable to set up the common and page specific functions. If you // rename this variable, you will also need to rename the namespace below. -var Sage = { +const routes = { // All pages - 'common': { - init: function() { - // JavaScript to be fired on all pages - }, - finalize: function() { - // JavaScript to be fired on all pages, after page specific JS is fired - } - }, + 'common': Common, // Home page - 'home': { - init: function() { - // JavaScript to be fired on the home page - }, - finalize: function() { - // JavaScript to be fired on the home page, after the init JS - } - }, + 'home': Home, // About us page, note the change from about-us to about_us. - 'about_us': { - init: function() { - // JavaScript to be fired on the about us page - } - } + 'about_us': About }; // Load Events -$(document).ready(function() { - new Router(Sage).loadEvents(); -}); +$(document).ready(() => new Router(routes).loadEvents()); diff --git a/assets/scripts/routes/About.js b/assets/scripts/routes/About.js new file mode 100644 index 0000000..d9ab68a --- /dev/null +++ b/assets/scripts/routes/About.js @@ -0,0 +1,5 @@ +export default { + init() { + // JavaScript to be fired on the about us page + } +}; diff --git a/assets/scripts/routes/Common.js b/assets/scripts/routes/Common.js new file mode 100644 index 0000000..bc13db8 --- /dev/null +++ b/assets/scripts/routes/Common.js @@ -0,0 +1,8 @@ +export default { + init() { + // JavaScript to be fired on all pages + }, + finalize() { + // JavaScript to be fired on all pages, after page specific JS is fired + } +}; diff --git a/assets/scripts/routes/Home.js b/assets/scripts/routes/Home.js new file mode 100644 index 0000000..766017b --- /dev/null +++ b/assets/scripts/routes/Home.js @@ -0,0 +1,8 @@ +export default { + init() { + // JavaScript to be fired on the home page + }, + finalize() { + // JavaScript to be fired on the home page, after the init JS + } +}; diff --git a/assets/scripts/util/router.js b/assets/scripts/util/router.js index ca9694e..c564633 100644 --- a/assets/scripts/util/router.js +++ b/assets/scripts/util/router.js @@ -11,18 +11,18 @@ import $ from 'jquery'; // The routing fires all common scripts, followed by the page specific scripts. // Add additional events for more control over timing e.g. a finalize event export default class Router { - constructor(namespace) { - this.namespace = namespace; + constructor(routes) { + this.routes = routes; } fire(func, funcname, args) { funcname = (funcname === undefined) ? 'init' : funcname; let fire = func !== ''; - fire = fire && this.namespace[func]; - fire = fire && typeof this.namespace[func][funcname] === 'function'; + fire = fire && this.routes[func]; + fire = fire && typeof this.routes[func][funcname] === 'function'; if (fire) { - this.namespace[func][funcname](args); + this.routes[func][funcname](args); } }