From eb4945075646eb595404ad743b6d39be418dc728 Mon Sep 17 00:00:00 2001
From: JustTemmie <47639983+JustTemmie@users.noreply.github.com>
Date: Sat, 12 Jul 2025 20:43:25 +0200
Subject: [PATCH] feat: support 12 and 24 hour formats
---
components/Message.vue | 3 ++-
components/MessageArea.vue | 2 +-
utils/getPreferredTimeFormat.ts | 11 +++++++++++
3 files changed, 14 insertions(+), 2 deletions(-)
create mode 100644 utils/getPreferredTimeFormat.ts
diff --git a/components/Message.vue b/components/Message.vue
index a8329dd..db08258 100644
--- a/components/Message.vue
+++ b/components/Message.vue
@@ -46,7 +46,8 @@
Yesterday at
{{ date.toLocaleDateString(undefined) }},
- {{ date.toLocaleTimeString(undefined, { timeStyle: "short" }) }}
+
+ {{ date.toLocaleTimeString(undefined, { hour12: props.format=="12", timeStyle: "short" }) }}
diff --git a/components/MessageArea.vue b/components/MessageArea.vue
index b2338f5..d59b862 100644
--- a/components/MessageArea.vue
+++ b/components/MessageArea.vue
@@ -49,7 +49,7 @@ const me = await fetchWithApi("/me") as UserResponse;
const messageTimestamps = ref>({});
const messagesType = ref>({});
const messageGroupingMaxDifference = useRuntimeConfig().public.messageGroupingMaxDifference
-const timeFormat = settingLoad("timeFormat") ?? "24"
+const timeFormat = getPreferredTimeFormat()
const messagesRes: MessageResponse[] | undefined = await fetchWithApi(
`${props.channelUrl}/messages`,
diff --git a/utils/getPreferredTimeFormat.ts b/utils/getPreferredTimeFormat.ts
new file mode 100644
index 0000000..4cf03e0
--- /dev/null
+++ b/utils/getPreferredTimeFormat.ts
@@ -0,0 +1,11 @@
+export default (): "12" | "24" => {
+ const format = settingLoad("timeFormat").timeFormat ?? "auto"
+
+ if (format == "12-hour") {
+ return "12"
+ } else if (format == "24-hour") {
+ return "24"
+ }
+
+ return "24"
+}
\ No newline at end of file