mirror of
https://github.com/purrgrammer/grimoire.git
synced 2026-04-13 00:46:54 +02:00
refactor: Make thread comments more compact
- Create ThreadCommentRenderer for compact comment display - Remove reply preview from comments - Remove footer from comments - Remove reply count display when collapsed - Reduce padding in comments section - Tighter spacing between comments (space-y-0) - Use compact renderer for both kind 1 and 1111 in thread view
This commit is contained in:
49
src/components/ThreadCommentRenderer.tsx
Normal file
49
src/components/ThreadCommentRenderer.tsx
Normal file
@@ -0,0 +1,49 @@
|
||||
import { NostrEvent } from "@/types/nostr";
|
||||
import { UserName } from "./nostr/UserName";
|
||||
import { EventMenu } from "./nostr/kinds/BaseEventRenderer";
|
||||
import { RichText } from "./nostr/RichText";
|
||||
import { formatTimestamp } from "@/hooks/useLocale";
|
||||
import { useGrimoire } from "@/core/state";
|
||||
|
||||
/**
|
||||
* Compact renderer for comments in thread view
|
||||
* - No reply preview
|
||||
* - No footer
|
||||
* - Minimal padding
|
||||
* - Used for both kind 1 and kind 1111 in thread context
|
||||
*/
|
||||
export function ThreadCommentRenderer({ event }: { event: NostrEvent }) {
|
||||
const { locale } = useGrimoire();
|
||||
|
||||
// Format relative time for display
|
||||
const relativeTime = formatTimestamp(
|
||||
event.created_at,
|
||||
"relative",
|
||||
locale.locale,
|
||||
);
|
||||
|
||||
// Format absolute timestamp for hover
|
||||
const absoluteTime = formatTimestamp(
|
||||
event.created_at,
|
||||
"absolute",
|
||||
locale.locale,
|
||||
);
|
||||
|
||||
return (
|
||||
<div className="flex flex-col gap-1.5 p-2 border-b border-border/50 last:border-0">
|
||||
<div className="flex flex-row justify-between items-center">
|
||||
<div className="flex flex-row gap-2 items-baseline">
|
||||
<UserName pubkey={event.pubkey} className="text-sm" />
|
||||
<span
|
||||
className="text-xs text-muted-foreground cursor-help"
|
||||
title={absoluteTime}
|
||||
>
|
||||
{relativeTime}
|
||||
</span>
|
||||
</div>
|
||||
<EventMenu event={event} />
|
||||
</div>
|
||||
<RichText event={event} className="text-sm" />
|
||||
</div>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user