plane/web/components/cycles/transfer-issues.tsx
Anmol Singh Bhatia 35a7d10b8f
chore: plane ui library component and code refactor (#2406)
* chore: swap input component with plane/ui package

* chore: swap textarea component with plane/ui package

* chore: swap button component with plane/ui package

* chore: button component revamp

* fix: button type fix

* chore: secondary button revamp

* chore: button props updated

* chore: swap loader component with plane/ui package

* fix: build error fix

* chore: button component refactor

* chore: code refactor

* chore: swap toggle switch component with plane/ui package

* chore: swap spinner component with plane/ui package

* chore: swap progress bar componenet with plan/ui package

* chore: code refactor
2023-10-11 16:48:58 +05:30

51 lines
1.5 KiB
TypeScript

import React from "react";
import { useRouter } from "next/router";
import useSWR from "swr";
// component
import { Button } from "@plane/ui";
// icon
import { ExclamationIcon, TransferIcon } from "components/icons";
// services
import cycleServices from "services/cycles.service";
// fetch-key
import { CYCLE_DETAILS } from "constants/fetch-keys";
type Props = {
handleClick: () => void;
};
export const TransferIssues: React.FC<Props> = ({ handleClick }) => {
const router = useRouter();
const { workspaceSlug, projectId, cycleId } = router.query;
const { data: cycleDetails } = useSWR(
cycleId ? CYCLE_DETAILS(cycleId as string) : null,
workspaceSlug && projectId && cycleId
? () => cycleServices.getCycleDetails(workspaceSlug as string, projectId as string, cycleId as string)
: null
);
const transferableIssuesCount = cycleDetails
? cycleDetails.backlog_issues + cycleDetails.unstarted_issues + cycleDetails.started_issues
: 0;
return (
<div className="-mt-2 mb-4 flex items-center justify-between px-8 pt-6">
<div className="flex items-center gap-2 text-sm text-custom-text-200">
<ExclamationIcon height={14} width={14} className="fill-current text-custom-text-200" />
<span>Completed cycles are not editable.</span>
</div>
{transferableIssuesCount > 0 && (
<div>
<Button variant="primary" prependIcon={<TransferIcon color="white" />} onClick={handleClick}>
Transfer Issues
</Button>
</div>
)}
</div>
);
};