react-native-lottie-toast
Version:
A zero-dependency, customizable toast component for React Native and Expo.
219 lines (171 loc) • 5.52 kB
Markdown
# react-native-lottie-toast
A zero-dependency, customizable toast notification component for React Native and Expo. Built entirely using the Animated API—no external packages!
## ✨ Features
- ✅ **Zero dependencies** - No third-party libraries required!
- 🎨 **Fully customizable** - Custom background color, text color, and emoji icon
- ⏱ **Auto-dismiss and tap-to-dismiss** - Smart dismissal options
- 🚀 **Smooth animations** - Powered by React Native's Animated API
- 📱 **Expo compatible** - Works seamlessly with Expo and bare React Native
- 🪶 **Lightweight** - Minimal footprint on your app
## 📦 Installation
### Using npm
```bash
npm install react-native-lottie-toast
```
### Using yarn
```bash
yarn add react-native-lottie-toast
```
### Compatibility
- ✅ **React Native** (v0.68.0+)
- ✅ **Expo** (SDK 45+)
- ✅ **TypeScript** ready
- ✅ Works with both **npm** and **yarn**
## 🚀 Usage
### Basic Example
```javascript
import React, { useState } from "react";
import { View, Button } from "react-native";
import { Toast } from "react-native-lottie-toast";
export default function App() {
const [showToast, setShowToast] = useState(false);
return (
<View>
<Button title="Show Toast" onPress={() => setShowToast(true)} />
<Toast
visible={showToast}
message="Hello! This is a toast message"
icon="✅"
backgroundColor="#4CAF50"
textColor="#fff"
duration={3000}
onClose={() => setShowToast(false)}
/>
</View>
);
}
```
### Multiple Toast Types
```javascript
import React, { useState } from "react";
import { View, Button } from "react-native";
import { Toast } from "react-native-lottie-toast";
export default function App() {
const [successToast, setSuccessToast] = useState(false);
const [errorToast, setErrorToast] = useState(false);
return (
<View>
<Button title="Success" onPress={() => setSuccessToast(true)} />
<Button title="Error" onPress={() => setErrorToast(true)} />
{/* Success Toast */}
<Toast
visible={successToast}
message="Operation completed successfully!"
icon="✅"
backgroundColor="#4CAF50"
textColor="#fff"
duration={3000}
onClose={() => setSuccessToast(false)}
/>
{/* Error Toast */}
<Toast
visible={errorToast}
message="Something went wrong!"
icon="❌"
backgroundColor="#F44336"
textColor="#fff"
duration={3000}
onClose={() => setErrorToast(false)}
/>
</View>
);
}
```
### Full Example
Check out the complete working example with multiple toast types in the [`example/App.js`](./example/App.js) file.
## 📖 API Reference
### Props
| Prop | Type | Default | Description |
| ----------------- | ---------- | -------------------- | -------------------------------------------- |
| `visible` | `boolean` | `false` | Controls the visibility of the toast |
| `message` | `string` | `'This is a toast!'` | The message to display in the toast |
| `icon` | `string` | `'✅'` | Emoji or text icon to display |
| `backgroundColor` | `string` | `'#333'` | Background color of the toast |
| `textColor` | `string` | `'#fff'` | Color of the message text |
| `duration` | `number` | `3000` | Duration in milliseconds before auto-dismiss |
| `onClose` | `function` | `() => {}` | Callback function when toast closes |
## 💡 Examples
### Success Toast
```javascript
<Toast
visible={showToast}
message="Saved successfully!"
icon="✅"
backgroundColor="#4CAF50"
textColor="#fff"
duration={3000}
onClose={() => setShowToast(false)}
/>
```
### Error Toast
```javascript
<Toast
visible={showToast}
message="Failed to save changes"
icon="❌"
backgroundColor="#F44336"
textColor="#fff"
duration={3000}
onClose={() => setShowToast(false)}
/>
```
### Warning Toast
```javascript
<Toast
visible={showToast}
message="This action cannot be undone"
icon="⚠️"
backgroundColor="#FF9800"
textColor="#fff"
duration={3000}
onClose={() => setShowToast(false)}
/>
```
### Info Toast
```javascript
<Toast
visible={showToast}
message="New updates available"
icon="ℹ️"
backgroundColor="#2196F3"
textColor="#fff"
duration={3000}
onClose={() => setShowToast(false)}
/>
```
### Custom Toast
```javascript
<Toast
visible={showToast}
message="🎉 Welcome to the app!"
icon="🚀"
backgroundColor="#9C27B0"
textColor="#FFD700"
duration={4000}
onClose={() => setShowToast(false)}
/>
```
## 🎯 Features in Detail
- **Auto-dismiss**: Toast automatically dismisses after the specified duration
- **Tap-to-dismiss**: Users can tap the toast to dismiss it immediately
- **Smooth animations**: Uses React Native's Animated API for smooth slide-in/out animations
- **Customizable**: Fully customizable colors, icons, messages, and duration
- **Zero dependencies**: No external libraries required
- **Lightweight**: Minimal footprint on your app
## 📝 License
MIT
## 🤝 Contributing
Contributions, issues, and feature requests are welcome!
## 👨💻 Author
**Vijay Kishan**
- GitHub: [@vijaykishan312](https://github.com/vijaykishan312)