From 58fe9a2eacadce1cf4b00fdd909bea110271144d Mon Sep 17 00:00:00 2001 From: JustTemmie <47639983+JustTemmie@users.noreply.github.com> Date: Fri, 18 Jul 2025 12:43:18 +0200 Subject: [PATCH] feat: implement fetchMe --- components/MessageArea.vue | 4 +++- composables/api.ts | 5 +++++ utils/editMessage.ts | 7 +++++-- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/components/MessageArea.vue b/components/MessageArea.vue index 17b4a3e..0fe702e 100644 --- a/components/MessageArea.vue +++ b/components/MessageArea.vue @@ -44,9 +44,11 @@ import type { MessageResponse, ScrollPosition, UserResponse } from '~/types/inte import scrollToBottom from '~/utils/scrollToBottom'; import { generateIrcColor } from '#imports'; +const { fetchMe } = useApi() + const props = defineProps<{ channelUrl: string, amount?: number, offset?: number }>(); -const me = await fetchWithApi("/me") as UserResponse; +const me = await fetchMe() as UserResponse; const messageTimestamps = ref>({}); const messagesType = ref>({}); diff --git a/composables/api.ts b/composables/api.ts index eff2c73..723fb6b 100644 --- a/composables/api.ts +++ b/composables/api.ts @@ -21,6 +21,10 @@ export const useApi = () => { return ensureIsArray(await fetchWithApi(`/me/guilds`)); } + async function fetchMe(): Promise { + return await fetchWithApi("/me") + } + async function fetchChannels(guildId: string): Promise { return ensureIsArray(await fetchWithApi(`/guilds/${guildId}/channels`)); } @@ -98,6 +102,7 @@ export const useApi = () => { fetchGuilds, fetchGuild, fetchMyGuilds, + fetchMe, fetchChannels, fetchChannel, fetchMembers, diff --git a/utils/editMessage.ts b/utils/editMessage.ts index 5cc3ce8..d8ad005 100644 --- a/utils/editMessage.ts +++ b/utils/editMessage.ts @@ -1,9 +1,12 @@ import type { MessageProps } from "~/types/props"; +const { fetchMe } = useApi() + export default async (element: HTMLDivElement, props: MessageProps) => { console.log("message:", element); - const me = await fetchWithApi("/me") as any; - if (props.author?.uuid == me.uuid) { + const me = await fetchMe(); + + if (me && props.author?.uuid == me.uuid) { const text = element.getElementsByClassName("message-text")[0] as HTMLDivElement; text.contentEditable = "true"; text.focus();