Tengo un botón para agregar un artículo a una lista de deseos, por lo que cuando el usuario hace clic en ese botón, se activa un proceso de mostrar y ocultar una barra de refrigerios, que le dice al usuario que el artículo se guardó correctamente. Tengo un componente llamado AlertWishlist, y desde el padre configuré un accesorio llamado closeWishlistNotification, que básicamente ejecuta una función de tiempo de espera para esperar 5 segundos y luego cerrar la barra de bocadillos.
El snackbar en sí se basa en una variable de estado llamada isOpen, un booleano que define si mostrar u ocultar el snackbar (si es verdadero, mostrar, si es falso, ocultar).
Sin embargo, se puede volver a hacer clic en el botón para eliminar el artículo de la lista de deseos, y esta acción activa básicamente el mismo proceso que mencioné antes, la única diferencia es el mensaje que muestra la barra de refrigerios, que ahora dice "El artículo ha sido eliminado de la lista de deseos". todo esto, terminé teniendo este comportamiento:
Lo que realmente quiero es que el snackbar espere 5 segundos siempre, y si cambia, por ejemplo, si se muestra el snackbar "Artículo ha sido agregado" y antes de 5 segundos el snackbar "Artículo ha sido eliminado" reemplace el primero, entonces iniciar la cuenta del tiempo de nuevo.
No estoy seguro si esta pregunta se ha respondido antes, ya que no sé cómo preguntar correctamente si reduzco esto a una reacción pura, así que decidí usar el problema que tengo como ejemplo y proporcionar la mayor cantidad de detalles posibles.
Cualquier ayuda es apreciada, gracias.