diff --git a/src/components/nostr/kinds/IssueDetailRenderer.tsx b/src/components/nostr/kinds/IssueDetailRenderer.tsx index 2879205..17b0382 100644 --- a/src/components/nostr/kinds/IssueDetailRenderer.tsx +++ b/src/components/nostr/kinds/IssueDetailRenderer.tsx @@ -46,19 +46,20 @@ function getStatusIcon(kind: number) { /** * Get the color classes for a status badge + * Uses theme semantic colors */ function getStatusBadgeClasses(kind: number): string { switch (kind) { - case 1630: // Open - return "bg-green-500/20 text-green-500 border-green-500/30"; - case 1631: // Resolved/Merged - return "bg-purple-500/20 text-purple-500 border-purple-500/30"; - case 1632: // Closed - return "bg-red-500/20 text-red-500 border-red-500/30"; - case 1633: // Draft + case 1630: // Open - neutral + return "bg-muted/50 text-foreground border-border"; + case 1631: // Resolved/Merged - positive + return "bg-accent/20 text-accent border-accent/30"; + case 1632: // Closed - negative + return "bg-destructive/20 text-destructive border-destructive/30"; + case 1633: // Draft - muted return "bg-muted text-muted-foreground border-muted-foreground/30"; default: - return "bg-muted text-muted-foreground border-muted-foreground/30"; + return "bg-muted/50 text-foreground border-border"; } } @@ -128,7 +129,7 @@ export function IssueDetailRenderer({ event }: { event: NostrEvent }) { : CircleDot; const statusBadgeClasses = currentStatus ? getStatusBadgeClasses(currentStatus.kind) - : "bg-green-500/20 text-green-500 border-green-500/30"; + : "bg-muted/50 text-foreground border-border"; return (
diff --git a/src/components/nostr/kinds/IssueRenderer.tsx b/src/components/nostr/kinds/IssueRenderer.tsx index bf1eafc..e8d1acb 100644 --- a/src/components/nostr/kinds/IssueRenderer.tsx +++ b/src/components/nostr/kinds/IssueRenderer.tsx @@ -40,19 +40,20 @@ function getStatusIcon(kind: number) { /** * Get the color class for a status kind + * Uses theme semantic colors */ function getStatusColorClass(kind: number): string { switch (kind) { - case 1630: // Open - return "text-green-500"; - case 1631: // Resolved/Merged - return "text-purple-500"; - case 1632: // Closed - return "text-red-500"; - case 1633: // Draft + case 1630: // Open - neutral + return "text-foreground"; + case 1631: // Resolved/Merged - positive + return "text-accent"; + case 1632: // Closed - negative + return "text-destructive"; + case 1633: // Draft - muted return "text-muted-foreground"; default: - return "text-green-500"; + return "text-foreground"; } } @@ -118,7 +119,7 @@ export function IssueRenderer({ event }: BaseEventProps) { : CircleDot; const statusColorClass = currentStatus ? getStatusColorClass(currentStatus.kind) - : "text-green-500"; + : "text-foreground"; return ( diff --git a/src/components/nostr/kinds/IssueStatusDetailRenderer.tsx b/src/components/nostr/kinds/IssueStatusDetailRenderer.tsx index 7411496..06b6b52 100644 --- a/src/components/nostr/kinds/IssueStatusDetailRenderer.tsx +++ b/src/components/nostr/kinds/IssueStatusDetailRenderer.tsx @@ -35,19 +35,20 @@ function getStatusIcon(kind: number) { /** * Get the color classes for a status badge + * Uses theme semantic colors */ function getStatusBadgeClasses(kind: number): string { switch (kind) { - case 1630: // Open - return "bg-green-500/20 text-green-500 border-green-500/30"; - case 1631: // Resolved/Merged - return "bg-purple-500/20 text-purple-500 border-purple-500/30"; - case 1632: // Closed - return "bg-red-500/20 text-red-500 border-red-500/30"; - case 1633: // Draft + case 1630: // Open - neutral + return "bg-muted/50 text-foreground border-border"; + case 1631: // Resolved/Merged - positive + return "bg-accent/20 text-accent border-accent/30"; + case 1632: // Closed - negative + return "bg-destructive/20 text-destructive border-destructive/30"; + case 1633: // Draft - muted return "bg-muted text-muted-foreground border-muted-foreground/30"; default: - return "bg-muted text-muted-foreground border-muted-foreground/30"; + return "bg-muted/50 text-foreground border-border"; } } diff --git a/src/components/nostr/kinds/IssueStatusRenderer.tsx b/src/components/nostr/kinds/IssueStatusRenderer.tsx index 0db5b3f..f023d13 100644 --- a/src/components/nostr/kinds/IssueStatusRenderer.tsx +++ b/src/components/nostr/kinds/IssueStatusRenderer.tsx @@ -33,19 +33,20 @@ function getStatusIcon(kind: number) { /** * Get the color classes for a status kind + * Uses theme semantic colors */ function getStatusColorClass(kind: number): string { switch (kind) { - case 1630: // Open - return "text-green-500"; - case 1631: // Resolved/Merged - return "text-purple-500"; - case 1632: // Closed - return "text-red-500"; - case 1633: // Draft + case 1630: // Open - neutral + return "text-foreground"; + case 1631: // Resolved/Merged - positive + return "text-accent"; + case 1632: // Closed - negative + return "text-destructive"; + case 1633: // Draft - muted return "text-muted-foreground"; default: - return "text-muted-foreground"; + return "text-foreground"; } } diff --git a/src/lib/nip34-helpers.ts b/src/lib/nip34-helpers.ts index 21824fe..837d9b0 100644 --- a/src/lib/nip34-helpers.ts +++ b/src/lib/nip34-helpers.ts @@ -1,5 +1,6 @@ import type { NostrEvent } from "@/types/nostr"; import { getTagValue } from "applesauce-core/helpers"; +import { parseReplaceableAddress } from "applesauce-core/helpers/pointers"; /** * NIP-34 Helper Functions @@ -469,10 +470,6 @@ export function getStatusLabel(kind: number, forIssue = true): string { } } -// Import parseReplaceableAddress from applesauce-core for address parsing -// This parses "kind:pubkey:identifier" format strings into AddressPointer objects -import { parseReplaceableAddress } from "applesauce-core/helpers/pointers"; - /** * Get all valid pubkeys that can set status for an issue/patch/PR * Valid authors: event author, repository owner (from p tag), and all maintainers