Giter VIP home page Giter VIP logo

Comments (11)

omeranar1 avatar omeranar1 commented on May 23, 2024 7

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.

enestatli avatar enestatli commented on May 23, 2024 1

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.

francisleigh avatar francisleigh commented on May 23, 2024

Yes, this feature would be great!

from react-native-toast-message.

johannbuscail avatar johannbuscail commented on May 23, 2024

Has this been implemented yet ?

from react-native-toast-message.

nightness avatar nightness commented on May 23, 2024

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.

nightness avatar nightness commented on May 23, 2024

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.

erhanersoz avatar erhanersoz commented on May 23, 2024

I queued the toasts. Maybe it works for you too. https://snack.expo.io/@erhanersoz/toastqueue

from react-native-toast-message.

omeranar1 avatar omeranar1 commented on May 23, 2024

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()?

@erhanersoz


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.

erhanersoz avatar erhanersoz commented on May 23, 2024

@omeranar1 I don't remember. 😞

from react-native-toast-message.

ArturoTorresMartinez avatar ArturoTorresMartinez commented on May 23, 2024

Any news about this?

from react-native-toast-message.

ammarfaris avatar ammarfaris commented on May 23, 2024

this will be an essential feature.. thanks @calintamas

from react-native-toast-message.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.