react-toaster-service
Version:
A simple React toast notification service with auto CSS injection
104 lines (74 loc) β’ 2.72 kB
Markdown
# React Toaster Service
A lightweight, developer-friendly React toast notification system with automatic CSS injection β no need to import styles manually.
## π Features
- β
Simple toast API: `toast.success()`, `toast.error()`, `toast.info()`, `toast.warning()`
- β
Automatic CSS injection β no manual CSS import required
- β
Multiple toast stacking
- β
Clean, modern UI with animations
- β
Zero external dependencies (except React)
## π¦ Installation
```bash
npm install react-toaster-service
```
## βοΈ Usage
### 1. Wrap your App with `ToastProvider`
Wrap your root component (`App.jsx` or `main.jsx`) with the `ToastProvider` so that toast context is available globally.
```jsx
// main.jsx
import React from 'react';
import ReactDOM from 'react-dom/client';
import App from './App';
import { ToastProvider } from 'react-toaster-service';
ReactDOM.createRoot(document.getElementById('root')).render(
<React.StrictMode>
<ToastProvider>
<App />
</ToastProvider>
</React.StrictMode>
);
```
### 2. Use the `useToast()` hook in any component
```jsx
import React from 'react';
import { useToast } from 'react-toaster-service';
const MyComponent = () => {
const toast = useToast();
return (
<div>
<button onClick={() => toast.success("Saved successfully!")}>Success</button>
<button onClick={() => toast.error("Something went wrong!")}>Error</button>
<button onClick={() => toast.info("Hereβs some info")}>Info</button>
<button onClick={() => toast.warning("Warning: check input!")}>Warning</button>
</div>
);
};
export default MyComponent;
```
## π§ API Reference
### `useToast()` returns:
| Method | Description |
|-----------------------------|----------------------------------|
| `toast.success(msg, duration?)` | Green success toast |
| `toast.error(msg, duration?)` | Red error toast |
| `toast.info(msg, duration?)` | Blue info toast |
| `toast.warning(msg, duration?)` | Yellow warning toast |
- `msg`: **string** β Toast message
- `duration`: *(optional)* number in milliseconds (default: `3000`)
## π¨ Toast Styling
You donβt need to import any CSS manually. Styles are automatically injected at runtime.
| Type | Background Color |
|---------|------------------|
| success | Green |
| error | Red |
| info | Blue |
| warning | Yellow |
β
Each toast includes:
- Manual β close button so users can dismiss early
- Progress bar indicating time left before auto-dismiss
> Made with β€οΈ using React, Vite, and coffee.