From 994c6d3cde77278badc6dd74d9c1e54129e8c7e5 Mon Sep 17 00:00:00 2001
From: hazycora <hazysu@riseup.net>
Date: Tue, 26 Sep 2023 00:56:20 -0500
Subject: [PATCH] move pronouns JS

---
 templates/user/settings/profile.tmpl | 24 ---------------------
 web_src/js/features/user-settings.js | 31 ++++++++++++++++++++++++++++
 2 files changed, 31 insertions(+), 24 deletions(-)

diff --git a/templates/user/settings/profile.tmpl b/templates/user/settings/profile.tmpl
index 7638727e8c..822651a9db 100644
--- a/templates/user/settings/profile.tmpl
+++ b/templates/user/settings/profile.tmpl
@@ -62,30 +62,6 @@
 						</div>
 					</div>
 					<input id="pronouns-custom" name="pronouns" value="{{.SignedUser.Pronouns}}" maxlength="50">
-					<script>
-						(() => {
-							const pronounsDropdown = document.getElementById('pronouns-dropdown')
-							const pronounsCustom = document.getElementById('pronouns-custom')
-							const pronounsInput = pronounsDropdown.querySelector('input')
-							pronounsCustom.removeAttribute('name')
-							pronounsDropdown.style.display = ''
-							function onPronounsDropdownUpdate() {
-								const isCustom = !(pronounsInput.value == 'he/him' || pronounsInput.value == 'she/her' || pronounsInput.value == 'they/them' || pronounsInput.value == 'it/its')
-								if (isCustom) {
-									pronounsCustom.value = pronounsInput.value
-									pronounsCustom.style.display = ''
-								} else {
-									pronounsCustom.style.display = 'none'
-								}
-							}
-							function onPronounsCustomUpdate() {
-								pronounsInput.value = pronounsCustom.value
-							}
-							onPronounsDropdownUpdate()
-							pronounsInput.addEventListener('change', onPronounsDropdownUpdate)
-							pronounsCustom.addEventListener('input', onPronounsCustomUpdate)
-						})()
-					</script>
 				</div>
 
 				<div class="divider"></div>
diff --git a/web_src/js/features/user-settings.js b/web_src/js/features/user-settings.js
index 2d8c53e457..d2617dda6a 100644
--- a/web_src/js/features/user-settings.js
+++ b/web_src/js/features/user-settings.js
@@ -1,5 +1,27 @@
 import {hideElem, showElem} from '../utils/dom.js';
 
+function onPronounsDropdownUpdate() {
+  const pronounsCustom = document.getElementById('pronouns-custom');
+  const pronounsInput = document.querySelector('#pronouns-dropdown input');
+  const isCustom = !(
+    pronounsInput.value === 'he/him' ||
+    pronounsInput.value === 'she/her' ||
+    pronounsInput.value === 'they/them' ||
+    pronounsInput.value === 'it/its'
+  );
+  if (isCustom) {
+    pronounsCustom.value = pronounsInput.value;
+    pronounsCustom.style.display = '';
+  } else {
+    pronounsCustom.style.display = 'none';
+  }
+}
+function onPronounsCustomUpdate() {
+  const pronounsCustom = document.getElementById('pronouns-custom');
+  const pronounsInput = document.querySelector('#pronouns-dropdown input');
+  pronounsInput.value = pronounsCustom.value;
+}
+
 export function initUserSettings() {
   if (!document.querySelectorAll('.user.settings.profile').length) return;
 
@@ -16,4 +38,13 @@ export function initUserSettings() {
       hideElem(promptRedirect);
     }
   });
+
+  const pronounsDropdown = document.getElementById('pronouns-dropdown');
+  const pronounsCustom = document.getElementById('pronouns-custom');
+  const pronounsInput = pronounsDropdown.querySelector('input');
+  pronounsCustom.removeAttribute('name');
+  pronounsDropdown.style.display = '';
+  onPronounsDropdownUpdate();
+  pronounsInput.addEventListener('change', onPronounsDropdownUpdate);
+  pronounsCustom.addEventListener('input', onPronounsCustomUpdate);
 }