diff --git a/src/app/[handle]/[collection]/[rkey]/page.tsx b/src/app/[handle]/[collection]/[rkey]/page.tsx index 0701ca0..dfd236f 100644 --- a/src/app/[handle]/[collection]/[rkey]/page.tsx +++ b/src/app/[handle]/[collection]/[rkey]/page.tsx @@ -460,6 +460,32 @@ async function RecordContent({ handle, collection, rkey }: { handle: string; col )} + {/* The record fetch returns null for both a deleted/nonexistent record + and a transient host failure, so this notice covers both honestly + rather than silently showing the picker with no preview and no + explanation. The picker still renders below — its client links work + if the record exists elsewhere or the host recovers. */} + {!recordData && ( +
diff --git a/src/components/margin/JsonModal.tsx b/src/components/margin/JsonModal.tsx new file mode 100644 index 0000000..cd21769 --- /dev/null +++ b/src/components/margin/JsonModal.tsx @@ -0,0 +1,204 @@ +'use client'; + +import { useEffect, useRef } from 'react'; +import { X } from 'lucide-react'; + +/** + * Shared "view raw record data" modal for the margin.* previews. Built on the + * native