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);
+ });
+}