From dae7690c9042c4e051f8ff00fa021bd5c9b29c3e Mon Sep 17 00:00:00 2001
From: dsoloha <38593903+dsoloha@users.noreply.github.com>
Date: Thu, 16 Jan 2020 00:28:57 -0500
Subject: [PATCH] Got reminder class to (mostly) work

---
 src/Mods/Reminder/reminder.js               | 54 +++++++++------------
 src/init/storyInit.tw                       |  2 +-
 src/pregmod/managePersonalAffairs.tw        | 28 ++---------
 src/uncategorized/BackwardsCompatibility.tw |  4 +-
 src/uncategorized/endWeek.tw                |  2 +-
 src/uncategorized/main.tw                   | 13 +----
 6 files changed, 33 insertions(+), 70 deletions(-)

diff --git a/src/Mods/Reminder/reminder.js b/src/Mods/Reminder/reminder.js
index 4fd8a9a6e1d..fe1f0258cd8 100644
--- a/src/Mods/Reminder/reminder.js
+++ b/src/Mods/Reminder/reminder.js
@@ -1,10 +1,9 @@
-App.Reminders = class {
-	constructor(array) {
-		this.array = array;
-		this.entries = V.reminders.entries;
-		this.weeks = V.reminders.weeks;
-		this.active = V.reminders.active;
-		this.overdue = V.reminders.overdue;
+App.Reminders = class Reminders {
+	constructor() {
+		this.entries = [];
+		this.weeks = [];
+		this.active = [];
+		this.overdue = [];
 	}
 
 	add(entry, week) {
@@ -28,7 +27,7 @@ App.Reminders = class {
 			if (this.weeks[i] > 0) {
 				_active.push(`${this.entries[i]} in ${this.weeks[i]} ${numberWithPlural(this.weeks[i], 'week')}`);
 			} else {
-				_overdue.push(`<span class="yellow"></span>`);
+				_overdue.push(this.entries[i]);
 				this.entries.slice(i, 1);
 				this.weeks.slice(i, 1);
 			}
@@ -37,36 +36,31 @@ App.Reminders = class {
 		this.overdue = _overdue;
 	}
 
-	render() {
+	render(array) {
 		let t = '';
 
-		if (this.array.length > 0) {
-			t += `You have ${numberWithPluralOne(this.array.length, this.array === this.overdue ? 'overdue reminder' : 'reminder')}:`;
-			if (this.array === this.overdue) {
-				this.printOverdue();
+		if (array.length > 0) {
+			t += `You have ${numberWithPluralOne(array.length, array === this.overdue ? 'overdue reminder' : 'reminder')}:`;
+			if (array === this.overdue) {
+				t += this.printOverdue();
 			} else {
-				this.printActive();
+				t += this.printActive();
 			}
-			// return array === overdue ? printOverdue() : printActive();
 		}
 
 		return t;
 	}
 
-	clear() {
-		V.reminders = {
-			entries: [],
-			weeks: [],
-			active: [],
-			overdue: [],
-		};
+	clear(array) {
+		array = [];
+		return array;
 	}
 
 	printActive() {
 		let t = '';
 
 		for (let i = 0; i < this.active.length; i++) {
-			t += `<br><<print ${this.active[i]}>>${this.removeElement(this.active, i, 'Manage Personal Affairs')}`; // assumes passage, can be changed if needed
+			t += `<br><<print "${this.active[i]}">>`;
 		}
 
 		return t;
@@ -77,20 +71,20 @@ App.Reminders = class {
 
 		if (this.isPersonalAffairs()) {
 			for (let i = 0; i < this.overdue.length; i++) {
-				t += `<br><<print ${this.overdue[i]}>>${this.removeElement(this.overdue, i, 'Manage Personal Affairs')}>>`;
+				t += `<br><<print "${this.overdue[i]}">>`;
 			}
 		} else {
-			t += `<<print ${this.overdue}>>[[View reminders|Manage Personal Affairs]]`;
+			t += `<<print "${this.overdue}">>[[View reminders|Manage Personal Affairs]]`;
 		}
 
 		return t;
 	}
 
-	removeElement(index, passage) {
-		if (!index || !passage) {
-			return null;
-		}
-		return App.UI.passageLink('Clear', passage, this.array.slice(index, 1));
+	removeElement(array, index) {
+		// if (!array || !index) {
+		// 	return null;
+		// }
+		return `${App.UI.passageLink('Clear', 'Manage Personal Affairs', array.slice(index, 1))}`;
 	}
 
 	isPersonalAffairs() {
diff --git a/src/init/storyInit.tw b/src/init/storyInit.tw
index 621fdb1fae0..46c0b56c944 100644
--- a/src/init/storyInit.tw
+++ b/src/init/storyInit.tw
@@ -468,7 +468,7 @@ You should have received a copy of the GNU General Public License along with thi
 <<set $REReductionCheckinIDs = []>>
 <<set $activeSlave = 0>>
 <<set $activeChild = 0>>
-<<set $reminders = {entries: [], weeks:[], active: [], overdue: []}>>
+<<set $reminders = new App.Reminders()>>
 
 <<set $boomerangSlave = 0, $boomerangWeeks = 0, $boomerangBuyer = 0>>
 
diff --git a/src/pregmod/managePersonalAffairs.tw b/src/pregmod/managePersonalAffairs.tw
index 6750e71f045..ae5301aa622 100644
--- a/src/pregmod/managePersonalAffairs.tw
+++ b/src/pregmod/managePersonalAffairs.tw
@@ -4,8 +4,6 @@
 <<run PCTitle()>>
 
 <<set _ML = $marrying.length>>
-<<set _active = new App.Reminders($reminders.active)>>
-<<set _overdue = new App.Reminders($reminders.overdue)>>
 
 <<if $cheatMode == 1>>
 	<center>//[[Cheat Edit Player|PCCheatMenu][$cheater = 1]]<br><br>//</center>
@@ -224,29 +222,11 @@ Sclera:
 	You do not have any reminders set.
 <<else>>
 	<<if $reminders.overdue.length > 0>>
-		/*
-		<span class="yellow">
-			You have <<=numberWithPluralOne($reminders.overdue.length, "overdue reminder")>>:
-		</span>
-		*/
-		<<run _overdue.render()>>
-		/*
-		<<for _i = 0; _i < $reminders.overdue.length; _i++>>
-			<br>
-			<<print $reminders.overdue[_i]>> [[Clear|Manage Personal Affairs][$reminders.overdue.deleteAt(_i)]]
-			<<link "Clear" "Manage Personal Affairs">>
-				<<run $reminders.overdue.deleteAt(_i)>>
-			<</link>>
-		<</for>>
-		*/
+		<<= $reminders.render(overdue)>>
 		<br>
 	<</if>>
 	<<if $reminders.active.length > 0>>
-		<<run _active.render()>>
-		/*
-		You have <<=numberWithPluralOne($reminders.active.length, "reminder")>> set:
-		<<print $reminders.active>>
-		*/
+		<<= $reminders.render($reminders.active)>>
 	<</if>>
 <</if>>
 <br>
@@ -255,10 +235,10 @@ Remind me
 in
 <<textbox "$reminderWeek" "">>
 weeks.
-[[Add|Manage Personal Affairs][App.Reminders.add($reminderEntry, $reminderWeek)]]
+[[Add|Manage Personal Affairs][$reminders.add($reminderEntry, $reminderWeek)]]
 <br>
 <<if $reminders.active.length > 0 || $reminders.overdue.length > 0 || $cheatMode || $debugMode>>
-	[[Clear your reminders|Manage Personal Affairs][_active.clear(), _overdue.clear()]]
+	[[Clear your reminders|Manage Personal Affairs][$reminders.clear($reminders.active), $reminders.clear($reminders.overdue)]]
 <</if>>
 
 <br><br>
diff --git a/src/uncategorized/BackwardsCompatibility.tw b/src/uncategorized/BackwardsCompatibility.tw
index abe31e492b9..f759a90ce45 100644
--- a/src/uncategorized/BackwardsCompatibility.tw
+++ b/src/uncategorized/BackwardsCompatibility.tw
@@ -153,9 +153,7 @@
 	<<set $weddingPlanned = 0>>
 <</if>>
 
-<<if ndef $reminders || ndef $reminders.overdue>>
-	<<set $reminders = {entries: [], weeks: [], active: [], overdue: []}>>
-<</if>>
+<<set $reminders = new App.Reminders()>>
 
 <<if $releaseID < 1057>>
 	<<if ndef $PC.name>>
diff --git a/src/uncategorized/endWeek.tw b/src/uncategorized/endWeek.tw
index 55b795fb924..1857744aec0 100644
--- a/src/uncategorized/endWeek.tw
+++ b/src/uncategorized/endWeek.tw
@@ -44,7 +44,7 @@
 })>>
 
 <<if $reminders.active.length > 0>>
-	<<run App.Reminders.update()>>
+	<<run $reminders.update()>>
 <</if>>
 
 <<if $organs.length > 0>>
diff --git a/src/uncategorized/main.tw b/src/uncategorized/main.tw
index 54068b687c3..928259894d0 100644
--- a/src/uncategorized/main.tw
+++ b/src/uncategorized/main.tw
@@ -84,22 +84,13 @@
 	<br>
 	&nbsp;&nbsp;&nbsp;&nbsp;
 	<span class="yellow">/* TODO: this would be a good place to add a class "attention" or "attn" */
-	<<run App.Reminders.render($reminders.overdue)>>
-	/*
-	You have <<=numberWithPluralOne($reminders.overdue.length, "overdue reminder")>>:
-	<<print $reminders.overdue>>
-	*/
+	<<= $reminders.render($reminders.overdue)>>
 	</span>
-	/*[[View reminders|Manage Personal Affairs]]*/
 <</if>>
 <<if $reminders.active.length > 0>>
 	<br>
 	&nbsp;&nbsp;&nbsp;&nbsp;
-	<<run App.Reminders.render($reminders.active)>>
-	/*
-	You have <<=numberWithPluralOne($reminders.active.length, "reminder")>>:
-	<<print $reminders.active>>
-	*/
+	<<= $reminders.render($reminders.active)>>
 <</if>>
 <br><br>
 <<if $seeFCNN == 1>>
-- 
GitLab