diff --git a/src/components/nostr/QuotedEvent.tsx b/src/components/nostr/QuotedEvent.tsx
index 624605f..3d5d4aa 100644
--- a/src/components/nostr/QuotedEvent.tsx
+++ b/src/components/nostr/QuotedEvent.tsx
@@ -18,6 +18,8 @@ interface QuotedEventProps {
depth?: number;
/** Optional className for container */
className?: string;
+ /** Hide preview text when collapsed (for sensitive content) */
+ hidePreview?: boolean;
}
/**
@@ -31,6 +33,7 @@ export function QuotedEvent({
onOpen,
depth = 1,
className,
+ hidePreview = false,
}: QuotedEventProps) {
const [isExpanded, setIsExpanded] = useState(depth < 2);
@@ -99,10 +102,17 @@ export function QuotedEvent({
>
-
- {previewText}
- {hasMore && "..."}
-
+ {!hidePreview && (
+
+ {previewText}
+ {hasMore && "..."}
+
+ )}
+ {hidePreview && !isExpanded && (
+
+ Click to reveal content
+
+ )}
{isExpanded ? (
diff --git a/src/components/nostr/kinds/ReportRenderer.tsx b/src/components/nostr/kinds/ReportRenderer.tsx
index 63b47ee..3359a98 100644
--- a/src/components/nostr/kinds/ReportRenderer.tsx
+++ b/src/components/nostr/kinds/ReportRenderer.tsx
@@ -18,6 +18,7 @@ import {
import { BaseEventProps, BaseEventContainer } from "./BaseEventRenderer";
import { QuotedEvent } from "@/components/nostr/QuotedEvent";
import { UserName } from "@/components/nostr/UserName";
+import { useGrimoire } from "@/core/state";
import {
getReportInfo,
type ReportType,
@@ -52,6 +53,7 @@ function getReportTypeIcon(reportType: ReportType) {
* Renderer for Kind 1984 - Reports (NIP-56)
*/
export function ReportRenderer({ event }: BaseEventProps) {
+ const { addWindow } = useGrimoire();
// Parse report using cached helper (no useMemo needed - applesauce caches internally)
const report = getReportInfo(event);
@@ -67,26 +69,34 @@ export function ReportRenderer({ event }: BaseEventProps) {
const reasonLabel = REPORT_TYPE_LABELS[report.reportType].toLowerCase();
+ // Open report detail view
+ const openReportDetail = (e: React.MouseEvent) => {
+ e.stopPropagation();
+ addWindow("open", { pointer: { id: event.id } });
+ };
+
return (
- {/* Report header: "Reported
for " */}
-
+ {/* Report header: "Reported for " - whole line clickable */}
+
+
- {/* Reported event - collapsed by default (depth=2) */}
+ {/* Reported event - collapsed with hidden preview (depth=2, hidePreview) */}
{report.targetType === "event" && report.reportedEventId && (
)}