Prechádzať zdrojové kódy

Automatically add newly created workouts to the home page.

Lee Morgan 1 rok pred
rodič
commit
93b1f4a1a9
4 zmenil súbory, kde vykonal 21 pridanie a 13 odobranie
  1. 2 0
      app.js
  2. 1 1
      views/index.js
  3. 17 11
      views/js/pages/home.js
  4. 1 1
      views/js/pages/newWorkout.js

+ 2 - 0
app.js

@@ -22,6 +22,8 @@ global.cwd = import.meta.dirname;
 esbuild.build({
     entryPoints: [`${global.cwd}/views/index.js`, `${global.cwd}/views/index.css`],
     bundle: true,
+    minify: true,
+    sourcemap: process.env.NODE_ENV === "production",
     outdir: `${global.cwd}/views/build/`
 });
 

+ 1 - 1
views/index.js

@@ -28,7 +28,7 @@ window.changePage = (page, data)=>{
     switch(page){
         case "login": loginPage.render(); break;
         case "register": registerPage.render(); break;
-        case "home": homePage.render(); break;
+        case "home": homePage.render(data); break;
         case "newWorkout": newWorkoutPage.render();
     }
 }

+ 17 - 11
views/js/pages/home.js

@@ -1,12 +1,15 @@
 export default {
     rendered: false,
+    workoutList: document.getElementById("workoutList"),
 
-    render: function(){
+    render: function(newWorkout){
         if(!this.rendered){
             this.getWorkouts();
             this.buttons();
             this.rendered = true;
         }
+
+        if(newWorkout) this.addWorkout(newWorkout);
     },
 
     buttons: function(){
@@ -51,19 +54,22 @@ export default {
     },
 
     renderWorkouts: function(workouts){
-        const workoutList = document.getElementById("workoutList");
-        while(workoutList.children.length > 0){
-            workoutList.removeChild(workoutList.firstChild);
+        while(this.workoutList.children.length > 0){
+            this.workoutList.removeChild(this.workoutList.firstChild);
         }
 
         for(let i = 0; i < workouts.length; i++){
-            const button = document.createElement("button");
-            button.classList.add("button");
-            button.textContent = workouts[i].name;
-            button.addEventListener("click", ()=>{
-                changePage("workout", workouts[i]);
-            });
-            workoutList.appendChild(button);
+            this.addWorkout(workouts[i]);
         }
+    },
+
+    addWorkout: function(workout){
+        const button = document.createElement("button");
+        button.classList.add("button");
+        button.textContent = workout.name;
+        button.addEventListener("click", ()=>{
+            changePage("workout", workout);
+        });
+        this.workoutList.appendChild(button);
     }
 }

+ 1 - 1
views/js/pages/newWorkout.js

@@ -81,7 +81,7 @@ export default {
                     notify("error", response.error.message);
                 }else{
                     notify("success", "New workout created");
-                    changePage("home");
+                    changePage("home", response);
                 }
             })
             .catch((err)=>{