From f8bc5502baa2100bda6edbaf7a7e055d9888fe35 Mon Sep 17 00:00:00 2001 From: Jennie Robinson Faber Date: Tue, 14 Apr 2026 17:22:04 +0100 Subject: [PATCH] feat(board): replace board/peer support with posts list on member profile --- app/pages/members/[id].vue | 185 ++++++++++++++++--------------------- 1 file changed, 78 insertions(+), 107 deletions(-) diff --git a/app/pages/members/[id].vue b/app/pages/members/[id].vue index 2f29438..4bd8263 100644 --- a/app/pages/members/[id].vue +++ b/app/pages/members/[id].vue @@ -108,56 +108,39 @@
- -
- -
- -
- {{ tagLabel('craft', tag) }} -
-
- - -
- -
- - {{ stateLabel(topic.state) }} - {{ tagLabel('cooperative', topic.tagSlug) }} - -
-

- {{ member.board.details }} -

+ +
+ +
+ {{ tagLabel('craft', tag) }}
- -
- -
-

- {{ member.board.personalMessage }} -

-

- {{ member.board.availability }} -

-

- Reach out on Slack: @{{ member.board.slackHandle }} -

-
+ +
+ +

+ No posts yet. +

+
    +
  • + +
    {{ post.title }}
    +
    {{ postExcerpt(post) }}
    + +
    +
  • +
@@ -217,15 +200,6 @@ const circleLabels = { practitioner: "Practitioner", }; -// State display text mapping -const stateLabels = { - help: "Can help", - interested: "Interested", - seeking: "Need help", -}; - -const stateLabel = (state) => stateLabels[state] || state || ""; - const getInitials = (name) => { if (!name) return "?"; return name @@ -274,9 +248,19 @@ const tagLabel = (pool, slug) => { const craftTagsDisplay = computed(() => member.value?.craftTags || []); -const boardTopics = computed( - () => member.value?.board?.topics || [], -); +// Board posts authored by this member +const memberPosts = ref([]); +onMounted(async () => { + const { fetchPosts } = useBoardPosts(); + const result = await fetchPosts({ author: id }); + memberPosts.value = result || []; +}); + +const postExcerpt = (post) => { + const text = post.seeking || post.offering || ""; + if (text.length <= 80) return text; + return text.slice(0, 80).trimEnd() + "..."; +}; // Whether the member has any social links (for hero layout) const hasSocialLinks = computed(() => @@ -507,22 +491,6 @@ useHead({ color: var(--ember); } -/* ==================================================== - TWO-COLUMN: Craft Tags + Board - ==================================================== */ - -.profile-two-col { - display: grid; - grid-template-columns: 1fr 1fr; - border-bottom: 1px dashed var(--border); -} -.profile-two-col .profile-section { - border-bottom: none; -} -.profile-two-col .profile-section:first-child { - border-right: 1px dashed var(--border); -} - /* ==================================================== SHARED SECTION ELEMENTS ==================================================== */ @@ -533,9 +501,6 @@ useHead({ line-height: 1.6; margin: 0; } -.connection-details { - margin-top: 10px; -} /* Tags */ .tag-list { @@ -551,30 +516,47 @@ useHead({ border: 1px dashed var(--border); white-space: nowrap; } -.connection-pill { - display: inline-flex; - align-items: center; - gap: 4px; -} -.connection-state { - font-size: 9px; - text-transform: uppercase; - letter-spacing: 0.04em; - color: var(--text-faint); -} /* ==================================================== - PEER SUPPORT + BOARD POSTS ==================================================== */ -.peer-availability { - margin-top: 12px; - padding-top: 12px; +.posts-empty { + color: var(--text-faint); +} +.posts-list { + list-style: none; + margin: 0; + padding: 0; +} +.post-item { border-top: 1px dashed var(--border); } -.slack-handle { - font-family: "Commit Mono", monospace; - color: var(--candle-dim); +.post-item:last-child { + border-bottom: 1px dashed var(--border); +} +.post-link { + display: block; + padding: 10px 0; + text-decoration: none; + color: inherit; +} +.post-link:hover .post-title { + color: var(--candle); +} +.post-title { + font-size: 13px; + color: var(--text); + margin-bottom: 2px; + transition: color 0.15s; +} +.post-excerpt { + font-size: 11px; + color: var(--text-faint); + line-height: 1.4; +} +.post-tags { + margin-top: 6px; } /* ==================================================== @@ -666,17 +648,6 @@ useHead({ RESPONSIVE ==================================================== */ -@media (max-width: 1024px) { - /* ColumnsLayout events-sidebar hides itself at ≤1024px */ - .profile-two-col { - grid-template-columns: 1fr; - } - .profile-two-col .profile-section:first-child { - border-right: none; - border-bottom: 1px dashed var(--border); - } -} - @media (max-width: 768px) { .profile-hero, .profile-hero--with-links {