From 0562127e4aedb9cb23e1994a33bb6d35937485b8 Mon Sep 17 00:00:00 2001 From: JustTemmie <47639983+JustTemmie@users.noreply.github.com> Date: Fri, 11 Jul 2025 01:45:24 +0200 Subject: [PATCH] feat: finish entire friends menu --- components/Me/AddFriend.vue | 63 ++++++++++++++ components/{ => Me}/DirectMessagesSidebar.vue | 10 +-- components/Me/FriendsList.vue | 61 ++++++++++++++ composables/api.ts | 10 +++ pages/me/[userId].vue | 20 +++++ pages/me/friends.vue | 82 +++++++++++++++++++ pages/me/index.vue | 2 + 7 files changed, 243 insertions(+), 5 deletions(-) create mode 100644 components/Me/AddFriend.vue rename components/{ => Me}/DirectMessagesSidebar.vue (73%) create mode 100644 components/Me/FriendsList.vue create mode 100644 pages/me/[userId].vue create mode 100644 pages/me/friends.vue diff --git a/components/Me/AddFriend.vue b/components/Me/AddFriend.vue new file mode 100644 index 0000000..0867a0e --- /dev/null +++ b/components/Me/AddFriend.vue @@ -0,0 +1,63 @@ + + + + \ No newline at end of file diff --git a/components/DirectMessagesSidebar.vue b/components/Me/DirectMessagesSidebar.vue similarity index 73% rename from components/DirectMessagesSidebar.vue rename to components/Me/DirectMessagesSidebar.vue index dece975..5a0e99d 100644 --- a/components/DirectMessagesSidebar.vue +++ b/components/Me/DirectMessagesSidebar.vue @@ -5,24 +5,24 @@

Direct Messages

+ Friends +
- + :href="`/me/${user.uuid}`"/>
+ + \ No newline at end of file diff --git a/composables/api.ts b/composables/api.ts index 8a37a8e..0cd6db0 100644 --- a/composables/api.ts +++ b/composables/api.ts @@ -37,6 +37,14 @@ export const useApi = () => { return await fetchWithApi('/me/friends') } + async function addFriend(username: string): Promise { + await fetchWithApi('/me/friends', { method: "POST", body: { username } }); + } + + async function removeFriend(userId: string): Promise { + await fetchWithApi(`/me/friends/${userId}`, { method: "DELETE" }); + } + async function fetchMessages(channelId: string, options?: { amount?: number, offset?: number }): Promise { return await fetchWithApi(`/channels/${channelId}/messages`, { query: { amount: options?.amount ?? 100, offset: options?.offset ?? 0 } }); } @@ -64,6 +72,8 @@ export const useApi = () => { fetchUsers, fetchUser, fetchFriends, + addFriend, + removeFriend, fetchMessages, fetchMessage, fetchInstanceStats, diff --git a/pages/me/[userId].vue b/pages/me/[userId].vue new file mode 100644 index 0000000..d466938 --- /dev/null +++ b/pages/me/[userId].vue @@ -0,0 +1,20 @@ + + + + + \ No newline at end of file diff --git a/pages/me/friends.vue b/pages/me/friends.vue new file mode 100644 index 0000000..b284658 --- /dev/null +++ b/pages/me/friends.vue @@ -0,0 +1,82 @@ + + + + + \ No newline at end of file diff --git a/pages/me/index.vue b/pages/me/index.vue index 701481d..b075668 100644 --- a/pages/me/index.vue +++ b/pages/me/index.vue @@ -5,6 +5,8 @@