Comments (11)
thank you, I found another package similar to this repo with supporting multiple notifications. problem solved.
react-native-toast-notifications
from react-native-toast-message.
Any news about this?
We exactly needed same feature in one of our applications so developed a toaster component which supports queue. You can find module here https://www.npmjs.com/package/react-native-toastable
from react-native-toast-message.
Yes, this feature would be great!
from react-native-toast-message.
Has this been implemented yet ?
from react-native-toast-message.
Huge reason, I'm about to write my own toast. You can't show more than one at a time, or at least one after another. There is no queue for rapidly added toast messages. ;(
from react-native-toast-message.
The data needs to be statefully put in to an array. This works for me... https://snack.expo.io/@nightness/toast-snack---bottom
from react-native-toast-message.
I queued the toasts. Maybe it works for you too. https://snack.expo.io/@erhanersoz/toastqueue
from react-native-toast-message.
did you solve the problem
Warning: Function components cannot be given refs. Attempts to access this ref will fail. Did you mean to use React.forwardRef()?
import React, { useState, useEffect, useRef } from 'react';
import { View, TouchableOpacity, Text, StyleSheet } from 'react-native';
import Toast from 'react-native-toast-message';
export default function App() {
const toastRef = useRef();
//const toastRef = React.forwardRef((props, ref) => <Toast ref={ref} {...props} />);
const [toastQueue, setToastQueue] = useState([]);
const [toastId, setToastId] = useState(1);
const [toastVisible, setToastVisible] = useState(false);
const [shownToast, setShownToast] = useState(null);
let toastTimeout;
const addToast = () => {
setToastQueue([...toastQueue, {
id: toastId,
text1: toastId.toString(),
autoHide: false,
onPress: () => {
toastRef.current.hide();
},
onHide: () => {
clearTimeout(toastTimeout);
setShownToast(toastId);
setToastVisible(false);
},
onShow: () => {
setToastVisible(true);
toastTimeout = setTimeout(() => {
toastRef.current.hide();
}, 4000);
}
}]);
setToastId(toastId + 1);
};
useEffect(() => {
if (toastQueue.length > 0 && !toastVisible) {
if(toastRef.current!=null)
{
toastRef.current.show(toastQueue[0]);
setToastVisible(true);
}
}
}, [toastQueue, toastVisible]);
useEffect(() => {
if (toastQueue.length > 0 && shownToast) {
setToastQueue([...toastQueue.filter((item) => item.id !== shownToast)]);
setShownToast(null);
}
}, [toastQueue, shownToast]);
return (
<>
<View style={styles.container}>
<TouchableOpacity style={styles.button} onPress={() => addToast()}>
<Text>Create New Toast</Text>
</TouchableOpacity>
</View>
<Toast ref={toastRef} />
</>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
button: {
backgroundColor: '#a5e9a0',
paddingVertical: 15,
paddingHorizontal: 30,
}
});
from react-native-toast-message.
@omeranar1 I don't remember. 😞
from react-native-toast-message.
Any news about this?
from react-native-toast-message.
this will be an essential feature.. thanks @calintamas
from react-native-toast-message.
Related Issues (20)
- How to make the toast height dynamic based on content HOT 6
- Instal with Typescript HOT 1
- Toast Not working in with React-native 0.71.8 version HOT 8
- Inconsistent Availability of text1 and text2 Style Props in toast.show Function
- display toast on more than one screen HOT 4
- migrate to reanimated ?
- how to use with expo app routes? HOT 6
- onHIide feature for toast does not work, if i pass code to execute for onHide callback as arguement HOT 1
- Toast not showing on RN v0.72.4 HOT 6
- Modal prompts on iOS overlay the toast HOT 12
- toast showing without calling it HOT 7
- You may need an appropriate loader to handle this file type, currently no loaders are configured to process this file HOT 1
- Toast isn't swipeable inside Modal if custom toast is used
- Unable to delay between two roasts. HOT 1
- How to override the default duration for the Toast at root level for all instances? HOT 1
- Toasts should not move. How to stop moving? HOT 6
- crash on android when Toast.show() HOT 1
- Feature: Enable Swipe with Customizable Position-Right/Left HOT 2
- Custom props do not work HOT 1
- Warning: useLayoutEffect does nothing on the server, because its effect cannot be encoded into the server renderer's output format
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from react-native-toast-message.