From 7ee5431209d137f2bb8526ac1bccdc4d484ab759 Mon Sep 17 00:00:00 2001 From: Arthur Lu Date: Mon, 17 Jun 2024 21:02:15 +0000 Subject: [PATCH] move local settings to utils --- scripts/clientsync.js | 13 ++----------- scripts/index.js | 8 ++------ scripts/utils.js | 34 ++++++++++++++++++++++++++++++++-- 3 files changed, 36 insertions(+), 19 deletions(-) diff --git a/scripts/clientsync.js b/scripts/clientsync.js index 01b4f87..f88c100 100644 --- a/scripts/clientsync.js +++ b/scripts/clientsync.js @@ -1,17 +1,8 @@ -import { requestAPI } from "./utils.js"; +import { getSyncSettings, requestAPI } from "./utils.js"; import { API } from "../vars.js"; export async function setupClientSync (callback) { - let scheme = localStorage.getItem("sync-scheme"); - let rate = Number(localStorage.getItem("sync-rate")); - if (!scheme) { - scheme = "always"; - localStorage.setItem("sync-scheme", "always"); - } - if (!rate) { - rate = "5"; - localStorage.setItem("sync-rate", "5"); - } + const { scheme, rate } = getSyncSettings(); if (scheme === "always") { callback(); diff --git a/scripts/index.js b/scripts/index.js index 5100a6d..6eac691 100644 --- a/scripts/index.js +++ b/scripts/index.js @@ -1,4 +1,4 @@ -import { requestPVE, requestAPI, goToPage, setTitleAndHeader, setAppearance } from "./utils.js"; +import { requestPVE, requestAPI, goToPage, setTitleAndHeader, setAppearance, getSearchSettings } from "./utils.js"; import { alert, dialog } from "./dialog.js"; import { setupClientSync } from "./clientsync.js"; import wfAlign from "../modules/wfa.js"; @@ -40,11 +40,7 @@ async function getInstances () { } async function populateInstances () { - let searchCriteria = localStorage.getItem("search-criteria"); - if (!searchCriteria) { - searchCriteria = "fuzzy"; - localStorage.setItem("search-criteria", "fuzzy"); - } + const searchCriteria = getSearchSettings(); const searchQuery = document.querySelector("#search").value || null; let criteria; if (!searchQuery) { diff --git a/scripts/utils.js b/scripts/utils.js index 8716f70..2cfecc6 100644 --- a/scripts/utils.js +++ b/scripts/utils.js @@ -268,11 +268,41 @@ export function setTitleAndHeader () { document.querySelector("h1").innerText = organization; } +const settingsDefault = { + "sync-scheme": "always", + "sync-rate": 5, + "search-criteria": "fuzzy", + "appearance-theme": "auto" +}; + +export function getSyncSettings () { + let scheme = localStorage.getItem("sync-scheme"); + let rate = Number(localStorage.getItem("sync-rate")); + if (!scheme) { + scheme = settingsDefault["sync-scheme"]; + localStorage.setItem("sync-scheme", scheme); + } + if (!rate) { + rate = settingsDefault["sync-rate"]; + localStorage.setItem("sync-rate", rate); + } + return { scheme, rate }; +} + +export function getSearchSettings () { + let searchCriteria = localStorage.getItem("search-criteria"); + if (!searchCriteria) { + searchCriteria = settingsDefault["search-criteria"]; + localStorage.setItem("search-criteria", searchCriteria); + } + return searchCriteria; +} + export function setAppearance () { let theme = localStorage.getItem("appearance-theme"); if (!theme) { - theme = "auto"; - localStorage.setItem("appearance-theme", "auto"); + theme = settingsDefault["appearance-theme"]; + localStorage.setItem("appearance-theme", theme); } if (theme === "auto") {