import { FlashContext } from "./FlashContext"; import { useState } from "preact/hooks"; import { MESSAGE_FLASH_TIME } from "../../consts"; export type Message = { message: string; type: "error" | "success"; }; export const FlashProvider = ({ children }) => { const [messages, setMessages] = useState([] as Message[]); return ( { setMessages((messages: Message[]) => [...messages, message]); setTimeout(() => { setMessages((messages) => [...messages].splice(1)); }, MESSAGE_FLASH_TIME); }} > <> {children}
{messages.map((message) => { const className = message.type === "error" ? "is-danger" : "is-success"; const icon = message.type === "error" ? "fa-exclamation-circle" : "fa-check"; return (
{" "} {message.message}
); })}
); };