import React, { createContext, useContext, useState } from "react";

const NoticeContext = createContext();

export function NoticeProvider({ children }) {
  const [notice, setNotice] = useState(null);

  const showNotice = (message, type = "success", timeout = 3000) => {
    setNotice({ message, type });

    if (timeout) {
      setTimeout(() => {
        setNotice(null);
      }, timeout);
    }
  };

  const hideNotice = () => setNotice(null);

  return (
    <NoticeContext.Provider value={{ notice, showNotice, hideNotice }}>
      {children}
    </NoticeContext.Provider>
  );
}

export function useNotice() {
  return useContext(NoticeContext);
}
