From 4d1345a1fa69d4b7fc47d3f94bea5afec13ca378 Mon Sep 17 00:00:00 2001
From: lowercasedonkey <lowercasedonkey@gmail.com>
Date: Wed, 21 Oct 2020 22:16:50 -0400
Subject: [PATCH] map

---
 src/facilities/incubator/incubatorInteract.js | 70 ++++++-------------
 1 file changed, 23 insertions(+), 47 deletions(-)

diff --git a/src/facilities/incubator/incubatorInteract.js b/src/facilities/incubator/incubatorInteract.js
index e187382341b..8a4b4660ff8 100644
--- a/src/facilities/incubator/incubatorInteract.js
+++ b/src/facilities/incubator/incubatorInteract.js
@@ -138,54 +138,30 @@ App.UI.incubator = function() {
 			V.sortIncubatorList = V.sortIncubatorList || 'Unsorted';
 			App.UI.DOM.appendNewElement("span", sortingBar, "Sorting: ", "note");
 
-			let qlIncubatorSort = document.createElement("span");
-			qlIncubatorSort.classList.add("bold");
-			qlIncubatorSort.id = "qlIncubatorSort";
-			qlIncubatorSort.append(V.sortIncubatorList);
-			sortingBar.append(qlIncubatorSort);
-			sortingBar.append(`. `);
-
 			linkArray = [];
-			linkArray.push(
-				App.UI.DOM.link(
-					"Name",
-					() => {
-						V.sortIncubatorList = 'Name';
-						sortByName();
-						jQuery(`#qlIncubatorSort`).empty().append(V.sortIncubatorList);
-					}
-				)
-			);
-			linkArray.push(
-				App.UI.DOM.link(
-					"Reserved Incubator Spots",
-					() => {
-						V.sortIncubatorList = 'Reserved Incubator Spots';
-						sortByReservedSpots();
-						jQuery(`#qlIncubatorSort`).empty().append(V.sortIncubatorList);
-					}
-				)
-			);
-			linkArray.push(
-				App.UI.DOM.link(
-					"Pregnancy Week",
-					() => {
-						V.sortIncubatorList = 'Pregnancy Week';
-						sortByPregnancyWeek();
-						jQuery(`#qlIncubatorSort`).empty().append(V.sortIncubatorList);
-					}
-				)
-			);
-			linkArray.push(
-				App.UI.DOM.link(
-					"Number of Children",
-					() => {
-						V.sortIncubatorList = 'Number of Children';
-						sortByPregnancyCount();
-						jQuery(`#qlIncubatorSort`).empty().append(V.sortIncubatorList);
-					}
-				)
-			);
+			const sortingOptions = new Map([
+				["Name", sortByName],
+				["Reserved Incubator Spots", sortByReservedSpots],
+				["Pregnancy Week", sortByPregnancyWeek],
+				["Number of Children", sortByPregnancyCount],
+			]);
+			for (const [title, func] of sortingOptions) {
+				if (V.sortIncubatorList === title) {
+					linkArray.push(App.UI.DOM.makeElement("span", title, "bold"));
+				} else {
+					linkArray.push(
+						App.UI.DOM.link(
+							title,
+							() => {
+								V.sortIncubatorList = title;
+								func();
+								refresh();
+							}
+						)
+					);
+				}
+			}
+
 			sortingBar.append(App.UI.DOM.generateLinksStrip(linkArray));
 			el.append(sortingBar);
 		}
-- 
GitLab