-
Peer Support
-
-
- {{ member.board.personalMessage }}
-
-
- {{ member.board.availability }}
-
-
- Reach out on Slack: @{{ member.board.slackHandle }}
-
-
+
+
+
Board Posts
+
+ No posts yet.
+
+
+ -
+
+
{{ post.title }}
+ {{ postExcerpt(post) }}
+
+ {{ tagLabel('cooperative', tag) }}
+
+
+
+
@@ -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 {