@luisbovo/fidebe
Version:
Modern floating feedback widget for React apps. Collect user feedback, screenshots, images, and context with a customizable modal.
92 lines (66 loc) • 3.26 kB
Markdown
# Fidebe Widget
> A modern React component for floating feedback collection, with screenshot capture and context enrichment.
## About the Project
**Fidebe Widget** is a reusable React component that provides a floating widget for user feedback collection, including automatic screenshot capture, image uploads, and environment/context enrichment. The goal is to offer a minimal, pluggable, and easy-to-embed experience for any web application, with full control via callbacks and customization props.
### Key Features
- Customizable floating button
- Modal for feedback description
- Multiple image uploads
- Automatic screenshot capture (using html2canvas)
- Context information submission (browser, platform, route, console logs)
- Styling with TailwindCSS + ShadCN UI
- Easy integration via props and callbacks
## Installation
```bash
pnpm add @luisbovo/fidebe
# or
npm install @luisbovo/fidebe
# or
yarn add @luisbovo/fidebe
```
## Basic Usage
```tsx
import { FidebeWidget } from '@luisbovo/fidebe'
<FidebeWidget onSubmit={handleFeedback} onImageUpload={handleImageUpload} extraContext={{ route: '/home' }} />
// Example handlers:
function handleFeedback(data) {
// Send feedback data to your backend or analytics
}
function handleImageUpload(formData) {
// Handle image upload (e.g., send to storage or backend)
}
```
## Props
| Prop | Type | Description |
| ------------- | ---------------- | ------------------------------------------------------------------- |
| label | string/ReactNode | Text or node for the floating button (optional, default: icon+text) |
| className | string | Extra CSS class for button customization (optional) |
| style | object | Inline style for the button (optional) |
| dialog\* | various | Extensive dialog/modal customization props (see source for all) |
| onSubmit | function | Callback for feedback submission (required for integration) |
| onImageUpload | function | Callback for image upload (optional) |
| extraContext | object | Additional context to send (optional) |
## How it Works
1. The user clicks the floating button.
2. A modal opens to type feedback and attach images.
3. The component automatically captures the screen (screenshot).
4. Upon submission, the feedback, images, and context are sent via the provided callbacks (`onSubmit`, `onImageUpload`).
## Main Scripts
- `pnpm dev` — Storybook preview with Hot Reload
- `pnpm build` — Build the Storybook
- `pnpm build:lib` — Build the library for publishing
- `pnpm lint` — Lint with Biome
- `pnpm format` — Format with Biome
- `pnpm test` — Unit tests with Vitest
## Development
The project uses:
- [React 19](https://reactjs.org/)
- [Vite](https://vitejs.dev/)
- [Tailwind CSS 4](https://tailwindcss.com/)
- [Storybook 9](https://storybook.js.org/)
- [Vitest](https://vitest.dev/)
- [Biome](https://biomejs.dev/)
## Contribution
Contributions are welcome! Feel free to open issues or pull requests.
## License
[MIT](LICENSE)