Untitled
unknown
javascript
3 years ago
1.4 kB
4
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...