diff --git a/src/components/nostr/kinds/BaseEventRenderer.tsx b/src/components/nostr/kinds/BaseEventRenderer.tsx index d082b6e..038b760 100644 --- a/src/components/nostr/kinds/BaseEventRenderer.tsx +++ b/src/components/nostr/kinds/BaseEventRenderer.tsx @@ -52,6 +52,8 @@ import { getFavoriteConfig, FALLBACK_FAVORITE_CONFIG, } from "@/config/favorite-lists"; +import { getPowDifficulty } from "@/lib/nip13-helpers"; +import { Label } from "@/components/ui/label"; /** * Universal event properties and utilities shared across all kind renderers @@ -489,6 +491,7 @@ export function BaseEventContainer({ }; }) { const { locale } = useGrimoire(); + const addWindow = useAddWindow(); const { canSign, signer, pubkey } = useAccount(); const { settings } = useSettings(); const [emojiPickerOpen, setEmojiPickerOpen] = useState(false); @@ -527,6 +530,8 @@ export function BaseEventContainer({ [signer, pubkey, event], ); + const powDifficulty = getPowDifficulty(event); + const relativeTime = formatTimestamp( event.created_at, "relative", @@ -568,6 +573,14 @@ export function BaseEventContainer({ > {relativeTime} + {powDifficulty !== undefined && ( + + )} void; } /** * Label/Badge component with dotted border styling * Used for tags, language indicators, and metadata labels */ -export function Label({ children, className, size = "sm" }: LabelProps) { +export function Label({ + children, + className, + size = "sm", + onClick, +}: LabelProps) { return ( { + const nonceTag = event.tags.find((t) => t[0] === "nonce"); + if (!nonceTag) return undefined; + return countLeadingZeroBits(event.id); + }); +}