mirror of
https://github.com/AmruthPillai/Reactive-Resume.git
synced 2025-11-16 09:41:31 +10:00
- deleting a resume
This commit is contained in:
@ -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>
|
||||||
|
|||||||
@ -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>
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|||||||
@ -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);
|
||||||
|
|
||||||
|
|||||||
@ -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}
|
||||||
|
|||||||
@ -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 }) => {
|
||||||
|
|||||||
@ -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);
|
||||||
|
|||||||
Reference in New Issue
Block a user