Skip to content

Instantly share code, notes, and snippets.

@connor-davis
Last active September 13, 2021 21:01
Show Gist options
  • Save connor-davis/c672d99c508b7e974de498c6776ab2d5 to your computer and use it in GitHub Desktop.
Save connor-davis/c672d99c508b7e974de498c6776ab2d5 to your computer and use it in GitHub Desktop.
/**
* Create 2 users.
*/
let userA = await SEA.pair();
let userB = await SEA.pair();
let useMessages = (chat) => {
let [messages, setMessages] = useState([]);
useEffect(() => {
/**
* Get Messages from user
*/
database
.get('messages')
.get(userA.pub)
.on((messages, key) => {
for (let m in messages) {
try {
let messageData = JSON.parse(messages[m]);
setMessages((old) => [
...old.filter((o) => o.key !== m),
{ ...messageData, key: m },
]);
} catch {}
}
});
return () => {};
}, []);
return [messages, setMessages];
};
let sendMessage = (chat, message, type, callback = () => {}) => {
/**
* Create Message Packet
*/
let messageData = {
message,
from: userA.pub,
time: new Date(),
read: false,
received: false,
sent: true,
type,
};
/**
* First add message to messages > friendPublicKey
*/
database
.get('messages')
.get(userB.pub)
.set(JSON.stringify(messageData), () => {
/**
* Then add message to messages > userPublicKey
*/
database
.get('messages')
.get(userA.pub)
.set(
JSON.stringify(messageData),
(data) => {
/**
* Once added to user, log
*/
console.log('message sent');
}
);
});
};
export { useMessages, sendMessage };
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment