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)  {
   339   340   341   342   343   344   345   346   347   348   349