Untitled
unknown
javascript
2 years ago
1.4 kB
3
Indexable
import { createContext, useContext, useState } from 'react'; const ADD_MESSAGE_COLOR = '#3d84b8'; const REGULAR_MESSAGE_COLOR = '#2b2e4a'; const ERROR_MESSAGE_COLOR = '#fb3640'; const ScoreCardContext = createContext({ messages: [], addCardMessage: () => {}, addRegularMessage: () => {}, addErrorMessage: () => {}, deleteAllMessages: () => {}, }); const makeMessage = (message, color) => { return { message, color }; }; const ScoreCardProvider = (props) => { const [messages, setMessages] = useState([]); const addCardMessage = (message) => { setMessages([...messages, makeMessage(message, ADD_MESSAGE_COLOR)]); }; const addRegularMessage = (...ms) => { setMessages([ ...messages, ...ms.map((m) => makeMessage(m, REGULAR_MESSAGE_COLOR)), ]); }; const addErrorMessage = (message) => { setMessages([...messages, makeMessage(message, ERROR_MESSAGE_COLOR)]); }; const deleteAllMessages = () => { console.log("m: " + messages); setMessages([]); console.log("m: " + messages); }; return ( <ScoreCardContext.Provider value={{ messages, addCardMessage, addRegularMessage, addErrorMessage, deleteAllMessages, }} {...props} /> ); }; function useScoreCard() { return useContext(ScoreCardContext); } export { ScoreCardProvider, useScoreCard };
Editor is loading...