diff --git a/web/src/lib/components/collections/ItemCard.svelte b/web/src/lib/components/collections/ItemCard.svelte index b00ac5af..7c49e746 100644 --- a/web/src/lib/components/collections/ItemCard.svelte +++ b/web/src/lib/components/collections/ItemCard.svelte @@ -33,8 +33,28 @@ !!onStatusClick && !!statusOptions && statusOptions.length > 1 && !!fields.status ); + let pullRequest = $derived(item.code_context?.pull_request); + let pulsing = $state(false); + function prStateColor(state: string): string { + switch (state?.toUpperCase()) { + case 'OPEN': return 'var(--accent-green)'; + case 'MERGED': return 'var(--accent-purple, #8b5cf6)'; + case 'CLOSED': return 'var(--accent-red, #ef4444)'; + case 'DRAFT': return 'var(--text-muted)'; + default: return 'var(--text-muted)'; + } + } + + function openPullRequest(e: MouseEvent) { + e.preventDefault(); + e.stopPropagation(); + if (pullRequest?.url) { + window.open(pullRequest.url, '_blank', 'noopener,noreferrer'); + } + } + function cycleStatus(e: MouseEvent) { e.preventDefault(); e.stopPropagation(); @@ -81,6 +101,17 @@ + {#if pullRequest} + + {/if}