From 37dd5fdfb057d3450d3d37e6a0a07ca61c7b393b Mon Sep 17 00:00:00 2001 From: Glenn Streiff Date: Fri, 24 May 2019 13:48:18 -0500 Subject: [PATCH] make 'next button' callbacks more DRY by passing in body generator method ... instead of having separate callback creators for each next button on each page --- assets/js/controller.js | 43 +++++++++++++++++------------------------ 1 file changed, 18 insertions(+), 25 deletions(-) diff --git a/assets/js/controller.js b/assets/js/controller.js index fb60a7c..e152414 100644 --- a/assets/js/controller.js +++ b/assets/js/controller.js @@ -57,9 +57,15 @@ Controller.prototype.createLandingBody = function() { $(bodyDiv).append(footer); nextButton = document.getElementById("navigate_next"); - $(nextButton).on("click", this.getLandingFabCB()); + $(nextButton).on( + "click", + this.getNextButtonCB(this.createPreferencesBody.bind(this)) + ); getStarted = document.getElementById("get-started"); - $(getStarted).on("click", this.getLandingFabCB()); + $(getStarted).on( + "click", + this.getNextButtonCB(this.createPreferencesBody.bind(this)) + ); /* Make hamburger menu responsive to clicks. */ componentHandler.downgradeElements(document.querySelector(".mdl-layout")); @@ -120,7 +126,10 @@ Controller.prototype.createPreferencesBody = function createPreferencesBody() { $(bodyDiv).append(footer); nextButton = document.getElementById("navigate_next"); - $(nextButton).on("click", this.getPrefsFabCB()); + $(nextButton).on( + "click", + this.getNextButtonCB(this.createResultsBody.bind(this)) + ); /* Make hamburger menu responsive to clicks. */ componentHandler.downgradeElements(document.querySelector(".mdl-layout")); @@ -412,7 +421,10 @@ Controller.prototype.createResultsBody = function createResultsBody() { $(bodyDiv).append(footer); nextButton = document.getElementById("navigate_before"); - $(nextButton).on("click", this.getResultsFabCB()); + $(nextButton).on( + "click", + this.getNextButtonCB(this.createPreferencesBody.bind(this)) + ); /* Make hamburger menu responsive to clicks. */ componentHandler.downgradeElements(document.querySelector(".mdl-layout")); @@ -584,29 +596,10 @@ Controller.prototype.createResultsFooter = function(fabIcon) { return f; }; -Controller.prototype.getLandingFabCB = function() { - var that = this; - function innerFunction() { - console.log("innerFunction: click"); - that.createPreferencesBody(); - } - return innerFunction; -}; - -Controller.prototype.getPrefsFabCB = function() { - var that = this; - function innerFunction() { - console.log("innerFunction: click"); - that.createResultsBody(); - } - return innerFunction; -}; - -Controller.prototype.getResultsFabCB = function() { - var that = this; +Controller.prototype.getNextButtonCB = function(createBodyFn) { function innerFunction() { console.log("innerFunction: click"); - that.createPreferencesBody(); + createBodyFn(); } return innerFunction; };