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