- deleting a resume

This commit is contained in:
Amruth Pillai
2020-07-04 15:13:50 +05:30
parent e247cb102c
commit b42deb737c
6 changed files with 35 additions and 14 deletions

View File

@ -2,12 +2,15 @@ import { Menu, MenuItem } from "@material-ui/core";
import moment from "moment"; import moment from "moment";
import React, { useContext, useState } from "react"; import React, { useContext, useState } from "react";
import { MdMoreHoriz, MdOpenInNew } from "react-icons/md"; import { MdMoreHoriz, MdOpenInNew } from "react-icons/md";
import { toast } from "react-toastify";
import ModalContext from "../../contexts/ModalContext"; import ModalContext from "../../contexts/ModalContext";
import ResumeContext from "../../contexts/ResumeContext";
import styles from "./ResumePreview.module.css"; import styles from "./ResumePreview.module.css";
const ResumePreview = ({ resume }) => { const ResumePreview = ({ resume }) => {
const [anchorEl, setAnchorEl] = useState(null); const [anchorEl, setAnchorEl] = useState(null);
const { createResumeModal } = useContext(ModalContext); const { createResumeModal } = useContext(ModalContext);
const { deleteResume } = useContext(ResumeContext);
const handleOpen = () => { const handleOpen = () => {
console.log("Hello, World!"); console.log("Hello, World!");
@ -23,6 +26,12 @@ const ResumePreview = ({ resume }) => {
setAnchorEl(null); setAnchorEl(null);
}; };
const handleDelete = () => {
deleteResume(resume);
toast(`${resume.name} was deleted successfully`);
setAnchorEl(null);
};
const handleMenuClose = () => { const handleMenuClose = () => {
setAnchorEl(null); setAnchorEl(null);
}; };
@ -56,8 +65,7 @@ const ResumePreview = ({ resume }) => {
onClose={handleMenuClose} onClose={handleMenuClose}
> >
<MenuItem onClick={handleRename}>Rename</MenuItem> <MenuItem onClick={handleRename}>Rename</MenuItem>
<MenuItem onClick={handleMenuClose}>Duplicate</MenuItem> <MenuItem onClick={handleDelete}>
<MenuItem onClick={handleMenuClose}>
<span className="text-red-600">Delete</span> <span className="text-red-600">Delete</span>
</MenuItem> </MenuItem>
</Menu> </Menu>

View File

@ -1,21 +1,24 @@
import React, { Fragment } from "react"; import React, { Fragment, useEffect } from "react";
import { ToastContainer, Slide } from "react-toastify"; import { Slide, toast } from "react-toastify";
import ModalRegistrar from "../../modals/ModalRegistrar"; import ModalRegistrar from "../../modals/ModalRegistrar";
const Wrapper = ({ children }) => { const Wrapper = ({ children }) => {
useEffect(() => {
toast.configure({
role: "alert",
hideProgressBar: true,
transition: Slide,
closeButton: false,
position: "bottom-right",
pauseOnFocusLoss: false,
});
}, []);
return ( return (
<Fragment> <Fragment>
{children} {children}
<ModalRegistrar /> <ModalRegistrar />
<ToastContainer
role="alert"
hideProgressBar
transition={Slide}
closeButton={false}
position="bottom-right"
pauseOnFocusLoss={false}
/>
</Fragment> </Fragment>
); );
}; };

View File

@ -17,6 +17,7 @@ const ModalContext = createContext(defaultState);
const ModalProvider = ({ children }) => { const ModalProvider = ({ children }) => {
const [authOpen, setAuthOpen] = useState(false); const [authOpen, setAuthOpen] = useState(false);
const [createResumeOpen, setCreateResumeOpen] = useState(false); const [createResumeOpen, setCreateResumeOpen] = useState(false);
const [createResumeData, setCreateResumeData] = useState(null); const [createResumeData, setCreateResumeData] = useState(null);

View File

@ -7,6 +7,7 @@ import UserContext from "./UserContext";
const defaultState = { const defaultState = {
resumes: [], resumes: [],
createResume: async () => {}, createResume: async () => {},
deleteResume: async () => {},
}; };
const ResumeContext = createContext(defaultState); const ResumeContext = createContext(defaultState);
@ -56,12 +57,18 @@ const ResumeProvider = ({ children }) => {
}); });
}; };
const deleteResume = async (resume) => {
const { id } = resume;
await firebase.firestore().collection(collectionRef).doc(id).delete();
};
return ( return (
<ResumeContext.Provider <ResumeContext.Provider
value={{ value={{
resumes, resumes,
createResume, createResume,
updateResume, updateResume,
deleteResume,
}} }}
> >
{children} {children}

View File

@ -9,7 +9,9 @@ import { getModalText } from "../utils";
import BaseModal from "./BaseModal"; import BaseModal from "./BaseModal";
const CreateResumeSchema = Yup.object().shape({ const CreateResumeSchema = Yup.object().shape({
name: Yup.string().min(2).required(), name: Yup.string()
.min(5, "Please enter at least 5 characters.")
.required("This is a required field."),
}); });
const CreateResumeModal = ({ data }) => { const CreateResumeModal = ({ data }) => {

View File

@ -1,7 +1,7 @@
import React, { Fragment, useContext } from "react"; import React, { Fragment, useContext } from "react";
import ModalContext from "../contexts/ModalContext";
import AuthModal from "./AuthModal"; import AuthModal from "./AuthModal";
import CreateResumeModal from "./CreateResumeModal"; import CreateResumeModal from "./CreateResumeModal";
import ModalContext from "../contexts/ModalContext";
const ModalRegistrar = () => { const ModalRegistrar = () => {
const { createResumeModal } = useContext(ModalContext); const { createResumeModal } = useContext(ModalContext);