-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathApp.js
More file actions
41 lines (39 loc) · 1.1 KB
/
Copy pathApp.js
File metadata and controls
41 lines (39 loc) · 1.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import React, { useEffect, useState } from "react";
import db from "./firebase";
import Header from "./components/Header";
import MainBody from "./components/MainBody";
import SendBox from "./components/SendBox";
import firebase from "firebase";
function App() {
const [userName, setUserName] = useState("");
useEffect(() => {
setUserName(prompt("Enter your name", "NewUser"));
}, []);
const [Messages, getMessage] = useState([]);
function UpdateMessages(newMessage) {
db.collection("messages").add({
username: userName,
message: newMessage,
timestamp: firebase.firestore.FieldValue.serverTimestamp(),
});
}
useEffect(() => {
db.collection("messages")
.orderBy("timestamp")
.onSnapshot((Snapshot) => {
getMessage(
Snapshot.docs.map((doc) => {
return { id: doc.id, data: doc.data() };
})
);
});
}, []);
return (
<div className="App">
<Header />
<MainBody user={userName} DisplayMessages={Messages} />
<SendBox updateMessageArray={UpdateMessages} />
</div>
);
}
export default App;