All files / src/components/Buttons/CopyPlaybookButton index.tsx

0% Statements 0/22
0% Branches 0/1
0% Functions 0/3
0% Lines 0/22

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;