From eb68f7a857b9bcc7cea643264f8dfff691d68642 Mon Sep 17 00:00:00 2001
From: Arkerthan <arkerthan@mailbox.org>
Date: Thu, 13 Mar 2025 18:46:49 +0100
Subject: [PATCH] Dedupe section break function (create <hr> element)

---
 src/endWeek/events/death.js                  | 8 +-------
 src/endWeek/events/expire.js                 | 8 +-------
 src/endWeek/events/retire.js                 | 8 +-------
 src/events/intro/customizeSlaveTrade.js      | 8 +-------
 src/events/scheduled/burst/burst.js          | 8 +-------
 src/facilities/nursery/utils/nurseryUtils.js | 4 +---
 src/facilities/studio/studio.js              | 4 +---
 src/js/birth/birth.js                        | 8 +-------
 src/js/slaveListing.js                       | 4 +---
 src/js/utilsDOM.js                           | 9 +++++++++
 10 files changed, 18 insertions(+), 51 deletions(-)

diff --git a/src/endWeek/events/death.js b/src/endWeek/events/death.js
index ed550c91031..47ce7831c05 100644
--- a/src/endWeek/events/death.js
+++ b/src/endWeek/events/death.js
@@ -35,19 +35,13 @@ App.Events.SEDeath = class SEDeath extends App.Events.BaseEvent {
 			const deceased = getSlave(id);
 			if (deceased) {
 				App.UI.DOM.appendNewElement("p", node, death(deceased, deathType));
-				node.append(sectionBreak());
+				node.append(App.UI.sectionBreak());
 				removeSlave(deceased, {dead: true});
 			}
 		}
 
 		V.slaveDeath = new Map();
 
-		function sectionBreak() {
-			const hr = document.createElement("hr");
-			hr.style.margin = "0";
-			return hr;
-		}
-
 		/**
 		 *
 		 * @param {FC.SlaveState} slave
diff --git a/src/endWeek/events/expire.js b/src/endWeek/events/expire.js
index 14a01d96a16..627f87e16d2 100644
--- a/src/endWeek/events/expire.js
+++ b/src/endWeek/events/expire.js
@@ -21,7 +21,7 @@ App.Events.SEExpiration = class SEExpiration extends App.Events.BaseEvent {
 			const slave = getSlave(id);
 			if (slave) {
 				App.UI.DOM.appendNewElement("div", node, expire(slave));
-				node.append(sectionBreak());
+				node.append(App.UI.sectionBreak());
 			}
 		}
 		const oldHandler = App.Utils.PassageSwitchHandler.get();
@@ -34,12 +34,6 @@ App.Events.SEExpiration = class SEExpiration extends App.Events.BaseEvent {
 			oldHandler();
 		});
 
-		function sectionBreak() {
-			const hr = document.createElement("hr");
-			hr.style.margin = "0";
-			return hr;
-		}
-
 		/**
 		 *
 		 * @param {FC.SlaveState} slave
diff --git a/src/endWeek/events/retire.js b/src/endWeek/events/retire.js
index 63b823b238f..36f90e31766 100644
--- a/src/endWeek/events/retire.js
+++ b/src/endWeek/events/retire.js
@@ -19,15 +19,9 @@ App.Events.SERetire = class SERetire extends App.Events.BaseEvent {
 			const slave = getSlave(id);
 			if (slave) {
 				App.UI.DOM.appendNewElement("div", node, App.Events.retire(slave));
-				node.append(sectionBreak());
+				node.append(App.UI.sectionBreak());
 			}
 		}
-
-		function sectionBreak() {
-			const hr = document.createElement("hr");
-			hr.style.margin = "0";
-			return hr;
-		}
 	}
 };
 
diff --git a/src/events/intro/customizeSlaveTrade.js b/src/events/intro/customizeSlaveTrade.js
index 3d0483c9888..e56424069e9 100644
--- a/src/events/intro/customizeSlaveTrade.js
+++ b/src/events/intro/customizeSlaveTrade.js
@@ -46,7 +46,7 @@ App.Intro.CustomSlaveTrade = function() {
 		f.append(filters());
 		f.append(adjustSelector());
 		f.append(resetOptions());
-		f.append(sectionBreak());
+		f.append(App.UI.sectionBreak());
 		f.append(popControls());
 		return f;
 	}
@@ -420,12 +420,6 @@ App.Intro.CustomSlaveTrade = function() {
 		$(container).empty().append(textArea, button);
 	}
 
-	function sectionBreak() {
-		const hr = document.createElement("hr");
-		hr.style.margin = "0";
-		return hr;
-	}
-
 	function refresh() {
 		return $(dynamicDiv).empty().append(dynamicContent());
 	}
diff --git a/src/events/scheduled/burst/burst.js b/src/events/scheduled/burst/burst.js
index 75ad41fcc74..c6f3f6bafd6 100644
--- a/src/events/scheduled/burst/burst.js
+++ b/src/events/scheduled/burst/burst.js
@@ -26,7 +26,7 @@ App.Events.SEBurst = class SEBurst extends App.Events.BaseEvent {
 				node.append(pop(slave));
 			}
 			removeSlave(slave, {dead: true});
-			node.append(sectionBreak());
+			node.append(App.UI.sectionBreak());
 		}
 
 		/**
@@ -137,12 +137,6 @@ App.Events.SEBurst = class SEBurst extends App.Events.BaseEvent {
 			el.append(horrifiedSlaves(slave));
 			return el;
 		}
-
-		function sectionBreak() {
-			const hr = document.createElement("hr");
-			hr.style.margin = "0";
-			return hr;
-		}
 	}
 };
 
diff --git a/src/facilities/nursery/utils/nurseryUtils.js b/src/facilities/nursery/utils/nurseryUtils.js
index 64149051e2b..13a2da136a2 100644
--- a/src/facilities/nursery/utils/nurseryUtils.js
+++ b/src/facilities/nursery/utils/nurseryUtils.js
@@ -15,10 +15,8 @@ App.Facilities.Nursery.childList = function childList() {
 			const weeksOwned = V.week - child.weekAcquired;
 			const weeksLeft = (V.targetAgeNursery * 52) - weeksOwned;
 			const {he, him, He} = getPronouns(child);
-			const hr = document.createElement("hr");
 
-			hr.style.margin = "0";
-			list.appendChild(hr);
+			list.appendChild(App.UI.sectionBreak());
 
 			if (child.actualAge < 3) {
 				$(list).append(App.UI.DOM.link(SlaveFullName(child), (id) => V.activeChild = getInfant(id), [child.ID], "Infant Interact"));
diff --git a/src/facilities/studio/studio.js b/src/facilities/studio/studio.js
index bf21a136145..77db00dace6 100644
--- a/src/facilities/studio/studio.js
+++ b/src/facilities/studio/studio.js
@@ -152,9 +152,7 @@ App.UI.mediaStudio = function() {
 		if (V.slavePanelStyle === 0) {
 			res.appendChild(document.createElement("br"));
 		} else if (V.slavePanelStyle === 1) {
-			const hr = document.createElement("hr");
-			hr.style.margin = "0";
-			res.appendChild(hr);
+			res.appendChild(App.UI.sectionBreak());
 		}
 
 		if (batchRenderer && (!V.seeCustomImagesOnly || (V.seeCustomImagesOnly && slave.custom.image))) {
diff --git a/src/js/birth/birth.js b/src/js/birth/birth.js
index c11df939ad4..127afb2ffb8 100644
--- a/src/js/birth/birth.js
+++ b/src/js/birth/birth.js
@@ -19,17 +19,11 @@ App.Events.SEBirth = class SEBirth extends App.Events.BaseEvent {
 
 		for (const slave of this.actors.map(id => getSlave(id))) {
 			node.append(birth(slave, {artRenderer}));
-			node.append(sectionBreak());
+			node.append(App.UI.sectionBreak());
 		}
 		V.birthIDs = [];
 
 		return node;
-
-		function sectionBreak() {
-			const hr = document.createElement("hr");
-			hr.style.margin = "0";
-			return hr;
-		}
 	}
 };
 
diff --git a/src/js/slaveListing.js b/src/js/slaveListing.js
index 84441b278b7..1512342fa9a 100644
--- a/src/js/slaveListing.js
+++ b/src/js/slaveListing.js
@@ -115,9 +115,7 @@ App.UI.SlaveList.render = function(IDs, rejectedSlaves, interactionLink, postNot
 		if (V.slavePanelStyle === 0) {
 			res.appendChild(document.createElement("br"));
 		} else if (V.slavePanelStyle === 1) {
-			const hr = document.createElement("hr");
-			hr.style.margin = "0";
-			res.appendChild(hr);
+			res.appendChild(App.UI.sectionBreak());
 		}
 		const slave = getSlave(id);
 
diff --git a/src/js/utilsDOM.js b/src/js/utilsDOM.js
index 7d30bfb3918..639e3d1a629 100644
--- a/src/js/utilsDOM.js
+++ b/src/js/utilsDOM.js
@@ -732,3 +732,12 @@ App.UI.DOM.createCanvas = (width, height) => {
 	canvas.style.imageRendering = "pixilated";
 	return canvas;
 };
+
+/**
+ * @returns {HTMLHRElement}
+ */
+App.UI.sectionBreak = function() {
+	const hr = document.createElement("hr");
+	hr.style.margin = "0";
+	return hr;
+};
-- 
GitLab