From b3566db828631cb68e8e79a0baabeac160400cb8 Mon Sep 17 00:00:00 2001 From: Michele Bigi Date: Sun, 20 Sep 2026 20:11:00 +0200 Subject: [PATCH] Rewrite datasheet PDF sheet overlay. Right-side Sheet still mounts PdfViewerPanel only while open; shadcn Sheet stays imported. --- .../src/components/pdf/pdf-viewer-sheet.tsx | 44 +++++++++++++++++++ ...st_periscope_frontend_pdf_sheet_rewrite.py | 18 ++++++++ 2 files changed, 62 insertions(+) create mode 100644 periscope/src/frontend/src/components/pdf/pdf-viewer-sheet.tsx create mode 100644 tests/test_periscope_frontend_pdf_sheet_rewrite.py diff --git a/periscope/src/frontend/src/components/pdf/pdf-viewer-sheet.tsx b/periscope/src/frontend/src/components/pdf/pdf-viewer-sheet.tsx new file mode 100644 index 0000000..90642cf --- /dev/null +++ b/periscope/src/frontend/src/components/pdf/pdf-viewer-sheet.tsx @@ -0,0 +1,44 @@ +"use client"; + +import { Sheet, SheetContent, SheetTitle } from "@/components/ui/sheet"; +import { PdfViewerPanel } from "./pdf-viewer-panel"; + +export type PdfViewerSheetProps = { + open: boolean; + onOpenChange: (open: boolean) => void; + projectId: string; + mpn: string | null; + initialPage: number; + highlightQuote?: string; +}; + +/** Right-side datasheet drawer; mounts the PDF panel only while open. */ +export function PdfViewerSheet({ + open, + onOpenChange, + projectId, + mpn, + initialPage, + highlightQuote, +}: PdfViewerSheetProps) { + if (!mpn) return null; + return ( + + + {mpn} + {open ? ( + + ) : null} + + + ); +} diff --git a/tests/test_periscope_frontend_pdf_sheet_rewrite.py b/tests/test_periscope_frontend_pdf_sheet_rewrite.py new file mode 100644 index 0000000..1d94038 --- /dev/null +++ b/tests/test_periscope_frontend_pdf_sheet_rewrite.py @@ -0,0 +1,18 @@ +"""Datasheet PDF sheet overlay lives under periscope/src.""" + +from __future__ import annotations + +from pathlib import Path + +ROOT = Path(__file__).resolve().parents[1] +SRC = ROOT / "periscope" / "src" / "frontend" / "src" + + +def test_pdf_sheet_is_src(): + path = SRC / "components/pdf/pdf-viewer-sheet.tsx" + text = path.read_text(encoding="utf-8") + assert "Native Periscope overlay" not in text[:400] + assert "export function PdfViewerSheet" in text + assert "PdfViewerPanel" in text + assert 'side="right"' in text + assert "sr-only" in text