diff --git a/src/components/nostr/kinds/PollDetailRenderer.tsx b/src/components/nostr/kinds/PollDetailRenderer.tsx index fab51bf..0089ae1 100644 --- a/src/components/nostr/kinds/PollDetailRenderer.tsx +++ b/src/components/nostr/kinds/PollDetailRenderer.tsx @@ -26,6 +26,7 @@ import { countVotes, getUniqueVoterCount, } from "@/lib/nip88-helpers"; +import { RichText } from "../RichText"; /** * Detail renderer for Kind 1068 - Poll (NIP-88) @@ -105,9 +106,9 @@ export function PollDetailRenderer({ event }: { event: NostrEvent }) { {/* Poll Type Badge */}
{pollType === "multiplechoice" ? ( - + ) : ( - + )} {pollType === "multiplechoice" @@ -124,7 +125,11 @@ export function PollDetailRenderer({ event }: { event: NostrEvent }) { {/* Question */}

- {question || "Poll"} +

{/* Author */} @@ -137,7 +142,7 @@ export function PollDetailRenderer({ event }: { event: NostrEvent }) { {/* Stats */}
- + {voterCount} {voterCount === 1 ? "voter" : "voters"} @@ -145,7 +150,7 @@ export function PollDetailRenderer({ event }: { event: NostrEvent }) {
{endsAt && (
- + {ended ? "Ended" : "Ends"} {endTimeText} @@ -187,23 +192,27 @@ export function PollDetailRenderer({ event }: { event: NostrEvent }) { }`} >
-
+
{pollType === "multiplechoice" ? ( ) : ( )} - - {option.label} - + +
-
+
diff --git a/src/components/nostr/kinds/PollRenderer.tsx b/src/components/nostr/kinds/PollRenderer.tsx index 730050e..d6ba6eb 100644 --- a/src/components/nostr/kinds/PollRenderer.tsx +++ b/src/components/nostr/kinds/PollRenderer.tsx @@ -19,6 +19,7 @@ import { getPollEndsAt, isPollEnded, } from "@/lib/nip88-helpers"; +import { RichText } from "../RichText"; /** * Renderer for Kind 1068 - Poll (NIP-88) @@ -43,9 +44,9 @@ export function PollRenderer({ event }: BaseEventProps) { {/* Poll Header */}
{pollType === "multiplechoice" ? ( - + ) : ( - + )} {pollType === "multiplechoice" @@ -60,7 +61,11 @@ export function PollRenderer({ event }: BaseEventProps) { event={event} className="text-base font-semibold text-foreground leading-tight" > - {question || "Poll"} + {/* Options Preview */} @@ -72,11 +77,18 @@ export function PollRenderer({ event }: BaseEventProps) { className="flex items-center gap-2 text-sm text-muted-foreground" > {pollType === "multiplechoice" ? ( - + ) : ( - + )} - {option.label} +
+ +
))} {options.length > 4 && ( @@ -90,7 +102,7 @@ export function PollRenderer({ event }: BaseEventProps) { {/* Deadline */} {endsAt && (
- + {ended ? ( Ended {endTimeText} ) : ( diff --git a/src/components/nostr/kinds/PollResponseRenderer.tsx b/src/components/nostr/kinds/PollResponseRenderer.tsx index f2843d0..b1366e1 100644 --- a/src/components/nostr/kinds/PollResponseRenderer.tsx +++ b/src/components/nostr/kinds/PollResponseRenderer.tsx @@ -11,6 +11,7 @@ import { getPollOptions, getPollType, } from "@/lib/nip88-helpers"; +import { RichText } from "../RichText"; /** * Renderer for Kind 1018 - Poll Response (NIP-88) @@ -50,19 +51,28 @@ export function PollResponseRenderer({ event, depth = 0 }: BaseEventProps) { return pollType === "singlechoice" ? labels.slice(0, 1) : labels; }, [selectedOptions, pollEvent, pollType]); - const displayText = - displayedLabels.length > 0 ? displayedLabels.join(", ") : "unknown option"; - return (
{/* Vote indicator */}
- + Voted for:{" "} {displayedLabels.length > 0 ? ( - {displayText} + + {displayedLabels.map((label, idx) => ( + + + {idx < displayedLabels.length - 1 && ", "} + + ))} + ) : ( unknown option )}