UNPKG

react-ipdf-viewer-lite

Version:

A lightweight, dependency-free media viewer for PDFs and other media types with advanced controls

45 lines (44 loc) 2.48 kB
var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; import { jsx as _jsx } from "react/jsx-runtime"; import { useState, useRef, useMemo } from "react"; // import { PDFRenderer } from './PDFRenderer'; import PDFRenderer from "./PDFRenderer"; export var ReactIPdfViewerLite = function (_a) { var src = _a.src, mimeType = _a.mimeType, fileName = _a.fileName, onError = _a.onError, _b = _a.showControls, showControls = _b === void 0 ? true : _b, _c = _a.defaultZoom, defaultZoom = _c === void 0 ? 1 : _c, _d = _a.allowDownload, allowDownload = _d === void 0 ? true : _d, _e = _a.allowPrint, allowPrint = _e === void 0 ? true : _e, _f = _a.allowRotate, allowRotate = _f === void 0 ? true : _f, _g = _a.allowFullScreen, allowFullScreen = _g === void 0 ? true : _g, _h = _a.theme, theme = _h === void 0 ? "dark" : _h, _j = _a.rotateValue, rotateValue = _j === void 0 ? 0 : _j, _k = _a.autoHeight, autoHeight = _k === void 0 ? true : _k, className = _a.className, style = _a.style, renderToolbar = _a.renderToolbar; var _l = useState(null), mediaUrl = _l[0], setMediaUrl = _l[1]; var _m = useState("unsupported"), mediaType = _m[0], setMediaType = _m[1]; var _o = useState("100%"), containerHeight = _o[0], setContainerHeight = _o[1]; var containerRef = useRef(null); var renderMedia = useMemo(function () { var effectiveUrl = typeof src === "string" ? src : mediaUrl; if (!effectiveUrl) return null; var mediaProps = { fileUrl: effectiveUrl, themes: theme === 'dark' }; switch (mediaType) { case "pdf": return _jsx(PDFRenderer, __assign({}, mediaProps)); // case "image": // return <ImageRenderer {...mediaProps} />; // case "video": // return <VideoRenderer {...mediaProps} />; // case "audio": // return <AudioRenderer {...mediaProps} />; default: return _jsx(PDFRenderer, __assign({}, mediaProps)); } }, [src]); return _jsx("div", { children: renderMedia }); };