From 4b3ba411dd0c352babd2cac18ed0cdc4f3936453 Mon Sep 17 00:00:00 2001 From: Jennie Robinson Faber Date: Tue, 14 Apr 2026 17:24:30 +0100 Subject: [PATCH] fix(board): unwrap API envelope in composables, isolate member profile fetch --- app/composables/useBoardChannels.js | 2 +- app/composables/useBoardPosts.js | 2 +- app/pages/members/[id].vue | 11 +++++------ 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/app/composables/useBoardChannels.js b/app/composables/useBoardChannels.js index c64d103..d499b77 100644 --- a/app/composables/useBoardChannels.js +++ b/app/composables/useBoardChannels.js @@ -7,7 +7,7 @@ export function useBoardChannels() { async function fetchChannels() { const result = await $fetch('/api/board/channels') - channels.value = result || [] + channels.value = result?.channels || [] return channels.value } diff --git a/app/composables/useBoardPosts.js b/app/composables/useBoardPosts.js index 9fc74ac..3f0b0d9 100644 --- a/app/composables/useBoardPosts.js +++ b/app/composables/useBoardPosts.js @@ -10,7 +10,7 @@ export function useBoardPosts() { loading.value = true try { const result = await $fetch('/api/board/posts', { params }) - posts.value = result || [] + posts.value = result?.posts || [] return posts.value } finally { loading.value = false diff --git a/app/pages/members/[id].vue b/app/pages/members/[id].vue index 4bd8263..2e3708b 100644 --- a/app/pages/members/[id].vue +++ b/app/pages/members/[id].vue @@ -249,12 +249,11 @@ const tagLabel = (pool, slug) => { const craftTagsDisplay = computed(() => member.value?.craftTags || []); // Board posts authored by this member -const memberPosts = ref([]); -onMounted(async () => { - const { fetchPosts } = useBoardPosts(); - const result = await fetchPosts({ author: id }); - memberPosts.value = result || []; -}); +const { data: postsData } = useFetch(`/api/board/posts`, { + params: { author: id }, + default: () => ({ posts: [] }), +}) +const memberPosts = computed(() => postsData.value?.posts || []) const postExcerpt = (post) => { const text = post.seeking || post.offering || "";