Package Exports
- react-doc-render
- react-doc-render/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (react-doc-render) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
react-doc-render
react-doc-render is a lightweight React library designed for rendering documents of various popular MIME types directly in the browser. The library supports formats such as PDF, images (JPEG, PNG, GIF), text files, and Microsoft Office documents (Word, Excel), providing a simple and unified interface to handle different content types.
Installation
To install the library, run the following command:
npm install react-doc-renderUsage
- Import the Component
Import
DocRenderfrom the library:
import { DocRender } from 'react-doc-render';- Add the Component to the Render Section
Use the
DocRendercomponent in your application by passing the document URI:
<DocRender uri={uri} />Configuration
The DocRender component accepts the following configuration options:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| uri | string |
yes | null | The URI of the document to render. |
| loading | React.FC |
no | <>Loading...</> |
A component to display while the document is loading. |
| notSupported | React.FC |
no | <>Not supported</> |
A component that is displayed if the document is not supported. |
| renderers | * renderers type | no | library renderers | Custom rendering functions for handling specific MIME types. |
| ...otherProps | any |
no | null | You can pass any additional props that you want. |
* Record<string, (buffer: ArrayBuffer, setContent: React.Dispatch<React.SetStateAction<string | null>>, extension: string) => Promise<void>>
Example of usage
import React from 'react';
import { DocRender } from "react-doc-render";
const CustomLoadingComponent: React.FC = () => {
return <>Custom loading...</>;
};
const CustomNotSupportedComponent: React.FC = () => {
return <>Custom `Not supported`</>;
};
const myCustomYmlRendererFunction = async (buffer: ArrayBuffer, setContent: React.Dispatch<React.SetStateAction<string | null>>, extension: string) => {
const text = new TextDecoder().decode(buffer);
setContent(`<p>Output for my custom '${extension}'-renderer:<p><pre>${text}</pre>`);
};
const customRenderers = {
'yml': myCustomYmlRendererFunction,
};
const App = () => {
return (
<>
<DocRender
uri="./docker-compose.yml"
loading={CustomLoadingComponent}
notSupported={CustomNotSupportedComponent}
renderers={customRenderers}
className="mx-auto"
style={{ position: 'absolute' }}
/>
</>
);
};
export default App;