diff --git a/app/components/BoardPostCard.vue b/app/components/BoardPostCard.vue index 2af1d55..9339e56 100644 --- a/app/components/BoardPostCard.vue +++ b/app/components/BoardPostCard.vue @@ -61,8 +61,6 @@ const props = defineProps({ defineEmits(['edit', 'delete']) -const { resolveTagChannel, slackUrl } = useBoardChannels() - const hasSeeking = computed(() => !!(props.post.seeking && props.post.seeking.trim())) const hasOffering = computed(() => !!(props.post.offering && props.post.offering.trim())) @@ -81,9 +79,14 @@ const typeClass = computed(() => { }) const slackLink = computed(() => { - const channel = resolveTagChannel(props.post.tags || []) - if (!channel) return null - return slackUrl(channel.slackChannelId) + const postTags = props.post.tags || [] + if (!postTags.length) return null + const channel = props.channels.find(c => { + const slugs = c.tagSlugs || [] + return slugs.some(s => postTags.includes(s)) + }) + if (!channel || !channel.slackChannelId) return null + return `https://gammaspace.slack.com/archives/${channel.slackChannelId}` }) diff --git a/app/components/BoardPostForm.vue b/app/components/BoardPostForm.vue index 2228572..51b3821 100644 --- a/app/components/BoardPostForm.vue +++ b/app/components/BoardPostForm.vue @@ -97,6 +97,14 @@ const form = reactive({ const error = ref('') +watch(() => props.post, (p) => { + form.title = p?.title || '' + form.seeking = p?.seeking || '' + form.offering = p?.offering || '' + form.note = p?.note || '' + form.tags = Array.isArray(p?.tags) ? [...p.tags] : [] +}, { immediate: false }) + function toggleTag(slug) { const idx = form.tags.indexOf(slug) if (idx === -1) form.tags.push(slug) diff --git a/app/components/CooperativeTagSelector.vue b/app/components/CooperativeTagSelector.vue index a182183..334c2e3 100644 --- a/app/components/CooperativeTagSelector.vue +++ b/app/components/CooperativeTagSelector.vue @@ -11,7 +11,7 @@ >{{ tag.label || tag.name || tag.slug }} @@ -77,19 +77,23 @@ function toggle(slug) { } .suggest-link { - font-size: 10px; - font-family: "Commit Mono", monospace; - color: var(--text-faint); margin-top: 2px; } -.suggest-link span { +.suggest-btn { + background: none; + border: none; + padding: 0; + font: inherit; + font-size: 10px; + font-family: "Commit Mono", monospace; + color: var(--text-faint); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; } -.suggest-link span:hover { +.suggest-btn:hover { color: var(--text-dim); }