Merge branch 'worktree-agent-aff832dd'

This commit is contained in:
Jennie Robinson Faber 2026-04-09 22:34:09 +01:00
commit b54b57cd90

View file

@ -127,6 +127,49 @@
</dl> </dl>
</section> </section>
<!-- Onboarding -->
<section class="detail-section">
<div class="section-label">Onboarding</div>
<dl class="meta-list">
<div class="meta-row">
<dt>Profile Tags</dt>
<dd :class="hasProfileTags ? 'status-ok' : 'status-dim'">
{{ hasProfileTags ? '✓ Complete' : '— Incomplete' }}
</dd>
</div>
<div class="meta-row">
<dt>Event Page Visited</dt>
<dd :class="member.onboarding?.eventPageVisited ? 'status-ok' : 'status-dim'">
{{ member.onboarding?.eventPageVisited ? '✓ Complete' : '— Incomplete' }}
</dd>
</div>
<div class="meta-row">
<dt>Ecology Engaged</dt>
<dd :class="hasEcologyEngaged ? 'status-ok' : 'status-dim'">
{{ hasEcologyEngaged ? '✓ Complete' : '— Incomplete' }}
</dd>
</div>
<div class="meta-row">
<dt>Wiki Clicked</dt>
<dd :class="member.onboarding?.wikiClicked ? 'status-ok' : 'status-dim'">
{{ member.onboarding?.wikiClicked ? '✓ Complete' : '— Incomplete' }}
</dd>
</div>
<div class="meta-row">
<dt>Completed</dt>
<dd :class="member.onboarding?.completedAt ? 'status-ok' : 'status-dim'">
{{ member.onboarding?.completedAt ? formatDate(member.onboarding.completedAt) : 'In progress' }}
</dd>
</div>
<div class="meta-row">
<dt>Slack status</dt>
<dd :class="slackStatusClass">
{{ member.slackInviteStatus || 'none' }}
</dd>
</div>
</dl>
</section>
<!-- Notification preferences --> <!-- Notification preferences -->
<section class="detail-section"> <section class="detail-section">
<div class="section-label">Notification preferences</div> <div class="section-label">Notification preferences</div>
@ -304,6 +347,28 @@ function statusClass(status) {
return "status-dim"; return "status-dim";
} }
// Onboarding computed states
const hasProfileTags = computed(() => {
const m = member.value
if (!m) return false
return m.craftTags?.length > 0 && m.communityEcology?.topics?.length > 0
})
const hasEcologyEngaged = computed(() => {
const m = member.value
if (!m) return false
return m.onboarding?.ecologyPageVisited && m.communityEcology?.topics?.some(
t => ['help', 'interested', 'seeking'].includes(t.state)
)
})
const slackStatusClass = computed(() => {
const status = member.value?.slackInviteStatus
if (status === 'joined') return 'status-ok'
if (status === 'invited') return 'status-dim'
return 'status-dim'
})
// Activity log // Activity log
const activityEntries = ref([]) const activityEntries = ref([])
const activityLoading = ref(false) const activityLoading = ref(false)