{ setContent(event.target.value); } const createMessage = (fileUrl = null) => { const message = { timestamp: firebase.database.ServerValue.TIMESTAMP, user: { id: user.uid, name: user.displayName, image: user.photoURL } } if (fileUrl !== null) { message["image"] = fileUrl; } else { message["content"] = content; } return message; } const handleSubmit = async () => { if (!content) { setErrors(prev => prev.concat("Type contents first")); return; } setLoading(true); //firebase에 메시지를 저장하는 "> { setContent(event.target.value); } const createMessage = (fileUrl = null) => { const message = { timestamp: firebase.database.ServerValue.TIMESTAMP, user: { id: user.uid, name: user.displayName, image: user.photoURL } } if (fileUrl !== null) { message["image"] = fileUrl; } else { message["content"] = content; } return message; } const handleSubmit = async () => { if (!content) { setErrors(prev => prev.concat("Type contents first")); return; } setLoading(true); //firebase에 메시지를 저장하는 "> { setContent(event.target.value); } const createMessage = (fileUrl = null) => { const message = { timestamp: firebase.database.ServerValue.TIMESTAMP, user: { id: user.uid, name: user.displayName, image: user.photoURL } } if (fileUrl !== null) { message["image"] = fileUrl; } else { message["content"] = content; } return message; } const handleSubmit = async () => { if (!content) { setErrors(prev => prev.concat("Type contents first")); return; } setLoading(true); //firebase에 메시지를 저장하는 ">
function MessageForm() {
const chatRoom = useSelector(state => state.chatRoom.currentChatRoom);
const user = useSelector(state => state.user.currentUser);
const [content, setContent] = useState("");
const [errors, setErrors] = useState([]);
const [loading, setLoading] = useState(false);
const messagesRef = firebase.database().ref("messages");
const handleChange = (event) => {
setContent(event.target.value);
}
const createMessage = (fileUrl = null) => {
const message = {
timestamp: firebase.database.ServerValue.TIMESTAMP,
user: {
id: user.uid,
name: user.displayName,
image: user.photoURL
}
}
if (fileUrl !== null) {
message["image"] = fileUrl;
} else {
message["content"] = content;
}
return message;
}
const handleSubmit = async () => {
if (!content) {
setErrors(prev => prev.concat("Type contents first"));
return;
}
setLoading(true);
//firebase에 메시지를 저장하는 부분
try {
await messagesRef.child(chatRoom.id).push().set(createMessage());
setLoading(false);
setContent("");
setErrors([]);
} catch (error) {
setErrors(prev => prev.concat(error.message));
setLoading(false);
setTimeout(() => {
setErrors([]);
}, 5000);
}
}