react-toastly-jsx
Version:
A beautiful React toast notification library with animations, gradients, sounds, and premium features for free.
35 lines (29 loc) • 969 B
JSX
import React, { createContext, useContext, useState } from "react";
const ToastContext = createContext();
export const ToastlyProvider = ({ children }) => {
const [toasts, setToasts] = useState([]);
const success = (message) => {
const id = Date.now();
setToasts((prev) => [...prev, { id, message }]);
setTimeout(() => {
setToasts((prev) => prev.filter((t) => t.id !== id));
}, 3000);
};
return (
<ToastContext.Provider value={{ success }}>
{children}
<div className="fixed top-4 right-4 space-y-2 z-50">
{toasts.map(({ id, message }) => (
<div
key={id}
className="bg-gradient-to-r from-purple-500 to-pink-500 text-white p-3 rounded-lg shadow-lg animate-slideIn"
style={{ minWidth: "250px" }}
>
{message}
</div>
))}
</div>
</ToastContext.Provider>
);
};
export const useToastly = () => useContext(ToastContext);