83
83
84
84
<!-- Login Section -->
85
85
<ul class =" signed-out" v-if =" !loggedIn" >
86
+ <li >
87
+ <a href =" https://forms.clickup.com/57751/f/1rcq-791/HNWSBPWCDSRMDMS9TF" target =" _blank" >REPORT A BUG</a >
88
+ </li >
89
+ <li ><a href =" " @click.prevent =" toggleDarkMode()" ><i class =" fa-solid fa-moon" ></i ></a ></li >
86
90
</ul >
87
91
88
92
<!-- User Dropdown Mobile -->
@@ -262,7 +266,7 @@ import AdminNavigation from '@/components/layout/AdminNavigation.vue'
262
266
import AdminSubNavigation from ' @/components/layout/AdminSubNavigation.vue'
263
267
import decode from ' @/composables/filters/decode'
264
268
import { AuthStore } from ' @/composables/stores/auth'
265
- import { PreferencesStore } from ' @/composables/stores/prefs'
269
+ import { PreferencesStore , localStoragePrefs } from ' @/composables/stores/prefs'
266
270
import { reactive , toRefs , watch , onMounted , onUnmounted , onBeforeMount , inject } from ' vue'
267
271
import { debounce } from ' lodash'
268
272
import { useRouter , useRoute } from ' vue-router'
@@ -279,6 +283,10 @@ export default {
279
283
let fetchMotd = () => motdApi .get ().then (d => v .motdData = d).catch (() => {})
280
284
fetchMotd ()
281
285
addAnnouncementListener (fetchMotd)
286
+
287
+ // set dark mode if in user prefs
288
+ if (localStoragePrefs ().data .dark_mode )
289
+ document .documentElement .classList .add (' dark' )
282
290
})
283
291
/* Internal Methods */
284
292
const scrollHeader = () => {
@@ -317,6 +325,12 @@ export default {
317
325
if (v .searchExpanded ) { v .search .focus () }
318
326
}
319
327
328
+ const toggleDarkMode = () => {
329
+ v .darkMode = ! v .darkMode
330
+ document .documentElement .classList .toggle (' dark' )
331
+ $prefs .update ()
332
+ }
333
+
320
334
const unseenMentionsText = () => {
321
335
let unseenInList = 0 ;
322
336
v .mentionsList .forEach (mention => { if (! mention .viewed ) { unseenInList++ } })
@@ -334,6 +348,7 @@ export default {
334
348
335
349
/* Template Data */
336
350
const v = reactive ({
351
+ darkMode: $prefs .data .dark_mode ,
337
352
showMobileMenu: false ,
338
353
focusSearch: false ,
339
354
searchExpanded: false ,
@@ -386,7 +401,7 @@ export default {
386
401
window .removeEventListener (' scroll' , debounce (scrollHeader, 10 ))
387
402
})
388
403
389
- return { ... toRefs (v), BanStore, logout, isPatroller, searchForum, dismissNotifications, deleteMention, unseenMentionsText, toggleFocusSearch, decode, humanDate }
404
+ return { ... toRefs (v), BanStore, logout, isPatroller, searchForum, dismissNotifications, deleteMention, unseenMentionsText, toggleFocusSearch, toggleDarkMode, decode, humanDate }
390
405
}
391
406
}
392
407
< / script>
0 commit comments