MCPcopy Create free account
hub / github.com/Timonwa/react-chat / SendMessage

Function SendMessage

src/components/SendMessage.js:5–42  ·  view source on GitHub ↗
({ scroll })

Source from the content-addressed store, hash-verified

3import { addDoc, collection, serverTimestamp } from "firebase/firestore";
4
5const SendMessage = ({ roomId }) => {
6 const [message, setMessage] = useState("");
7
8 const sendMessage = async event => {
9 event.preventDefault();
10 const trimmed = message.trim();
11 if (!trimmed) {
12 alert("Enter valid message");
13 return;
14 }
15 if (!roomId) {
16 alert("Select a room to send messages");
17 return;
18 }
19 const { uid, displayName, photoURL } = auth.currentUser;
20 await addDoc(collection(db, "rooms", roomId, "messages"), {
21 text: trimmed,
22 name: displayName,
23 avatar: photoURL,
24 createdAt: serverTimestamp(),
25 uid,
26 });
27 setMessage("");
28 };
29 return (
30 <form onSubmit={event => sendMessage(event)} className="send-message">
31 <label htmlFor="messageInput" hidden>
32 Enter Message
33 </label>
34 <input
35 id="messageInput"
36 name="messageInput"
37 type="text"
38 placeholder="type message..."
39 value={message}
40 onChange={e => setMessage(e.target.value)}
41 maxLength={500}
42 disabled={!roomId}
43 />
44 <button type="submit" disabled={!roomId}>
45 Send

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected