Page 344 - MDP2022-3
P. 344
const [open, setOpen] = useRecoilState(createDialogAtom);
const [className, setClassName] = useState("");
const handleClose = () => {
setOpen(false);
};
const createClass = async () => {
try {
const newClass = await db.collection("classes").add({
creatorUid: user.uid,
name: className,
creatorName: user.displayName,
creatorPhoto: user.photoURL,
posts: [],
});
// add to current user's class list
const userRef = await db
.collection("users")
.where("uid", "==", user.uid)
.get();
const docId = userRef.docs[0].id;
const userData = userRef.docs[0].data();
let userClasses = userData.enrolledClassrooms;
userClasses.push({
id: newClass.id,
name: className,
creatorName: user.displayName,
creatorPhoto: user.photoURL,
});
const docRef = await db.collection("users").doc(docId);
await docRef.update({
enrolledClassrooms: userClasses,
});
handleClose();
alert("클래스룸을 성공적으로 생성하셨어요!");
} catch (err) {