MCPcopy Create free account
hub / github.com/EyuCoder/chatgpt-pro / useMessageCollection

Function useMessageCollection

src/hooks/useMessageCollection.js:8–42  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

6 * @returns {Object} An object containing the `messages` array, the `addMessage` function, the `clearMessages` function, and the `loadMessage` function.
7 */
8const useMessageCollection = () => {
9 const [messages, setMessages] = useState([]);
10
11 useEffect(() => {
12 const storedMessages = JSON.parse(localStorage.getItem('messages'));
13 if (storedMessages) {
14 setMessages(storedMessages);
15 }
16 }, []);
17
18 useEffect(() => {
19 if (messages.length) {
20 localStorage.setItem('messages', JSON.stringify(messages));
21 }
22 }, [messages]);
23
24 /**
25 * A function for adding a new message to the collection.
26 *
27 * @param {Object} message - The message to add to the collection.
28 */
29 const addMessage = (message) => {
30 setMessages((prev) => [...prev, message]);
31 };
32
33 /**
34 * A function for clearing all messages in the collection and resetting to the initial message.
35 */
36 const clearChat = () => {
37 localStorage.setItem('messages', JSON.stringify([]));
38 setMessages([]);
39 };
40
41 return { messages, addMessage, clearChat };
42};
43
44export default useMessageCollection;

Callers 1

ChatContextProviderFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected