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