UNPKG

@premieroctet/next-admin

Version:

Next-Admin provides a customizable and turnkey admin dashboard for applications built with Next.js and powered by the Prisma ORM. It aims to simplify the development process by providing a turnkey admin system that can be easily integrated into your proje

44 lines (43 loc) 1.31 kB
"use client"; import { jsx } from "react/jsx-runtime"; import { createContext, useCallback, useContext, useEffect, useState } from "react"; import { useRouterInternal } from "../hooks/useRouterInternal.mjs"; const MessageContext = /*#__PURE__*/ createContext({ showMessage: ()=>{}, message: null, hideMessage: ()=>{} }); const MessageProvider = ({ children })=>{ const { query } = useRouterInternal(); const parseMessage = useCallback(()=>{ if (query.message) try { const data = JSON.parse(query.message.replaceAll("\\", "").replaceAll(/(^")|("$)/g, "")); if (data.type && data.message) return data; } catch {} return null; }, [ query.message ]); const [message, setMessage] = useState(parseMessage); useEffect(()=>{ setMessage(parseMessage); }, [ query.message ]); const showMessage = (messageData)=>{ setMessage(messageData); }; const hideMessage = ()=>{ setMessage(null); }; return /*#__PURE__*/ jsx(MessageContext.Provider, { value: { showMessage, message, hideMessage }, children: children }); }; const useMessage = ()=>useContext(MessageContext); export { MessageProvider, useMessage };