mirror of
https://github.com/purrgrammer/grimoire.git
synced 2026-06-15 17:19:27 +02:00
refactor(nip34): Use theme semantic colors for issue status
Replace hardcoded colors with theme semantic colors: - Resolved/merged: accent (positive) - Closed: destructive (negative) - Draft: muted - Open: neutral foreground Also fixes import placement in nip34-helpers.ts. https://claude.ai/code/session_01C6Lty4k9pKxdwnYUCcpzV2
This commit is contained in:
@@ -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 (
|
||||
<div className="flex flex-col gap-4 p-4 max-w-3xl mx-auto">
|
||||
|
||||
@@ -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 (
|
||||
<BaseEventContainer event={event}>
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user