@erock530/react-iframe v1.0.2
React IFrame Component
A lightweight React component for rendering iframes with custom headers. Perfect for embedding authenticated content or adding custom headers to iframe requests.
Features
- š Zero external dependencies
- š¦ Lightweight and performant
- š Support for custom headers (including authentication)
- āļø Built with modern React practices
- š± TypeScript support ready
Installation
npm install --save @erock530/react-iframeQuick Start
import Iframe from "@erock530/react-iframe";
function App() {
const token = localStorage.getItem("token");
return (
<Iframe
src="/dashboard"
headers={{
Authorization: `Bearer ${token}`,
"Content-Type": "text/html",
}}
width="100%"
height="600px"
/>
);
}API Reference
Props
| Prop | Type | Required | Description |
|---|---|---|---|
src | string | ā | The URL to embed in the iframe |
headers | object | ā | Custom headers to include with the request |
width | string \| number | ā | Width of the iframe (default: 100%) |
height | string \| number | ā | Height of the iframe (default: 400px) |
...props | HTMLIFrameElement | ā | Any additional iframe attributes |
Example with Authentication
import Iframe from "@erock530/react-iframe";
import Cookies from "js-cookie";
function AuthenticatedEmbed() {
const token = localStorage.getItem("token") || Cookies.get("token");
return (
<Iframe
src="/protected-content"
headers={{
Authorization: `Bearer ${token}`,
"X-Requested-With": "XMLHttpRequest",
}}
width="100%"
height="500px"
style={{ border: "1px solid #ccc", borderRadius: "8px" }}
/>
);
}Development
This project uses a modern development workflow with hot reloading and automatic compilation.
Local Development Setup
Start the build watcher (compiles
src/todist/on changes):npm startStart the example app (in a separate terminal):
cd example npm start
The example app will automatically reload when you make changes to either the library source or the example code.
Project Structure
āāā src/ # Component source code
āāā dist/ # Compiled output
āāā example/ # Example React app for testing
āāā package.json # Package configurationPublishing
Build and publish to npm:
npm publishThis will:
- Build both CommonJS and ES module versions
- Generate type definitions (if using TypeScript)
- Publish to the npm registry
Peer Dependencies
Make sure to properly configure peer dependencies in package.json. The build system will automatically exclude them from the bundle.
Contributing
- Fork the repository
- Create a feature branch:
git checkout -b feature-name - Make your changes and test thoroughly
- Submit a pull request
License
MIT License - see LICENSE file for details.
Support
If you encounter any issues or have questions, please file an issue on the GitHub repository.
11 months ago