Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | import { ContentCopy } from "@mui/icons-material"; import { Tooltip } from "@mui/material"; import React, { useState } from "react"; import CustomButton from "../../common/CustomButton/index.tsx"; import { useDispatch } from "react-redux"; import { copyPlaybook } from "../../../store/features/playbook/playbookSlice.ts"; import { COPY_LOADING_DELAY } from "../../../constants/index.ts"; import Loading from "../../common/Loading/index.tsx"; import { useNavigate } from "react-router-dom"; function CopyPlaybookButton() { const navigate = useNavigate(); const dispatch = useDispatch(); const [copyLoading, setCopyLoading] = useState(false); const handleCopyPlaybook = async () => { setCopyLoading(true); setTimeout(() => { dispatch(copyPlaybook({ useState: true })); setCopyLoading(false); navigate("/playbooks/create", { replace: true, }); }, COPY_LOADING_DELAY); }; Iif (copyLoading) { return <Loading title="Copying your playbook..." />; } return ( <CustomButton onClick={handleCopyPlaybook}> <Tooltip title="Duplicate this Playbook"> <> <ContentCopy /> <p>Duplicate</p> </> </Tooltip> </CustomButton> ); } export default CopyPlaybookButton; |