+
);
}
-export default function PDFViewer({ url, name }: PdfViewerProps) {
+export default function PDFViewer({
+ url,
+ name,
+ className,
+ height = "100dvh",
+ hideControls = false,
+ backgroundColor,
+ hideScrollbar = false,
+ isolateFromTheme = true,
+}: PdfViewerProps) {
const { engine, isLoading } = usePdfiumEngine();
- const {isMobile, isSmall} = useBreakpoint();
+ const { isMobile, isSmall } = useBreakpoint();
+ const { resolvedTheme } = useTheme();
const [isFullscreen, setIsFullscreen] = useState(false);
const viewerRef = useRef
(null);
+ const effectiveBackgroundColor =
+ backgroundColor ?? (resolvedTheme === "light" ? "#F3F5FF" : "#070114");
+ const loaderTextColor =
+ resolvedTheme === "light" ? "rgba(17,24,39,0.6)" : "rgba(255,255,255,0.5)";
const handleDownload = useCallback(async () => {
window.dataLayer?.push({
@@ -389,21 +419,67 @@ export default function PDFViewer({ url, name }: PdfViewerProps) {
if (isLoading || !engine) {
return (
-
+
);
}
return (
-
-
+ <>
+ {hideScrollbar && (
+
+ )}
+ {isolateFromTheme && (
+
+ )}
+
+
{({ activeDocumentId }) =>
activeDocumentId && (
<>
- {(isMobile && !isFullscreen) &&
+ {!hideControls && (isMobile && !isFullscreen) &&
-
+
(
-
+
e.stopPropagation()}
+ >
)}
@@ -443,7 +529,7 @@ if (isLoading || !engine) {
)}
- {(!isMobile || isFullscreen) && (
+ {!hideControls && (!isMobile || isFullscreen) && (
)
}
-
-
+
+
+ >
);
-}
\ No newline at end of file
+}