@nicholasadamou/react-iframe
Version:
A simple react component that lets you add headers to an iframe.
78 lines (48 loc) • 2.35 kB
Markdown
# React iFrame [](https://circleci.com/gh/nicholasadamou/react-iframe) [](https://www.npmjs.com/package/react-iframe) [](https://standardjs.com)
_Have you ever needed to add headers to an iframe? You've come to the right place!_
## Getting Started
React iFrame is a simple react component that lets you add headers to an iframe. It's super light-weight and requires no external dependencies!
**No dependencies!**
**Much 🔥!**
**Only ~700b!**
## Installation
You can download the package using `npm` with:
```bash
npm install --save @nicholasadamou/react-iframe
```
## Usage (Simple)
To use, simply import the component and specify your `src` and `headers`:
```js
import Iframe from "@nicholasadamou/react-iframe";
const token = localStorage.getItem("token") || new Cookies().get("token");
<Iframe
src="/chatbot?mode=embedded"
headers={{
Authorization: `Bearer ${token}`,
type: "text/html",
}}
/>;
```
## Development
Local development is broken into two parts (ideally using two tabs).
First, run rollup to watch your `src/` module and automatically recompile it into `dist/` whenever you make changes.
```bash
npm start # runs rollup with watch flag
```
The second part will be running the `example/` create-react-app that's linked to the local version of your module.
```bash
# (in another tab)
cd example
npm start # runs create-react-app dev server
```
Now, anytime you make a change to your library in `src/` or to the example app's `example/src`, `create-react-app` will live-reload your local dev server so you can iterate on your component in real-time.
## Publishing to npm
```bash
npm publish
```
This builds `commonjs` and `es` versions of your module to `dist/` and then publishes your module to `npm`.
Make sure that any npm modules you want as peer dependencies are properly marked as `peerDependencies` in `package.json`. The rollup config will automatically recognize them as peers and not try to bundle them in your module.
## License
© Nicholas Adamou.
It is free software, and may be redistributed under the terms specified in the [LICENSE] file.
[license]: LICENSE