diff --git a/app.vue b/app.vue
index 850f19a..6f242ff 100644
--- a/app.vue
+++ b/app.vue
@@ -15,7 +15,6 @@
\ No newline at end of file
diff --git a/types/settings.ts b/types/settings.ts
new file mode 100644
index 0000000..28e3bfc
--- /dev/null
+++ b/types/settings.ts
@@ -0,0 +1,9 @@
+export interface ClientSettings {
+ selectedThemeId?: string, // the ID of the theme, not the URL, for example "dark"
+ timeFormat?: TimeFormat
+}
+
+export interface TimeFormat {
+ index: number,
+ format: "auto" | "12" | "24"
+}
\ No newline at end of file
diff --git a/utils/getPreferredTimeFormat.ts b/utils/getPreferredTimeFormat.ts
new file mode 100644
index 0000000..86b9635
--- /dev/null
+++ b/utils/getPreferredTimeFormat.ts
@@ -0,0 +1,11 @@
+export default (): "12" | "24" => {
+ const format = settingsLoad().timeFormat?.format ?? "auto"
+
+ if (format == "12") {
+ return "12"
+ } else if (format == "24") {
+ return "24"
+ }
+
+ return "24"
+}
\ No newline at end of file
diff --git a/utils/settingLoad.ts b/utils/settingsLoad.ts
similarity index 66%
rename from utils/settingLoad.ts
rename to utils/settingsLoad.ts
index d0f315c..e7fdfaf 100644
--- a/utils/settingLoad.ts
+++ b/utils/settingsLoad.ts
@@ -1,10 +1,12 @@
-export default (key: string): any => {
+import type { ClientSettings } from "~/types/settings"
+
+export default (): ClientSettings => {
let clientSettingsItem: string | null = localStorage.getItem("clientSettings")
if (typeof clientSettingsItem != "string") {
clientSettingsItem = "{}"
}
- let clientSettings: { [key: string]: any } = {}
+ let clientSettings: ClientSettings = {}
try {
clientSettings = JSON.parse(clientSettingsItem)
} catch {
@@ -15,5 +17,5 @@ export default (key: string): any => {
clientSettings = {}
}
- return clientSettings[key]
+ return clientSettings
}
\ No newline at end of file