Page 341 - MDP2022-3
P. 341

}



            export  default  Announcement;


            import  {

                Button,
                Dialog,

                DialogActions,
                DialogContent,
                DialogContentText,

                DialogTitle,
                TextField,
            }  from  "@material-ui/core";

            import  React,  {  useState  }  from  "react";
            import  {  useAuthState  }  from  "react-firebase-hooks/auth";

            import  {  useRecoilState  }  from  "recoil";
            import  {  auth,  db  }  from  "../firebase";
            import  {  joinDialogAtom  }  from  "../utils/atoms";



            function  JoinClass()  {

                const  [open,  setOpen]  =  useRecoilState(joinDialogAtom);
                const  [user,  loading,  error]  =  useAuthState(auth);
                const  [classId,  setClassId]  =  useState("");



                const  handleClose  =  ()  =>  {

                    setOpen(false);
                };



                const  joinClass  =  async  ()  =>  {
                    try  {

                        //  check  if  class  exists
                        const  classRef  =  await  db.collection("classes").doc(classId).get();
                        if  (!classRef.exists)  {

                            return  alert(`Class  doesn't  exist,  please  provide  correct  ID`);
                        }

                        const  classData  =  await  classRef.data();
                        //  add  class  to  user
                        const  userRef  =  await  db.collection("users").where("uid",  "==",  user.uid);
   336   337   338   339   340   341   342   343   344   345   346