"use client"; import React, { FC, useState } from "react"; import { observer } from "mobx-react"; // helpers import { copyUrlToClipboard } from "@/helpers/string.helper"; // hooks import { useIssueDetail } from "@/hooks/store"; type TCreateIssueToastActionItems = { workspaceSlug: string; projectId: string; issueId: string; }; export const CreateIssueToastActionItems: FC = observer((props) => { const { workspaceSlug, projectId, issueId } = props; // state const [copied, setCopied] = useState(false); // store hooks const { issue: { getIssueById }, } = useIssueDetail(); // derived values const issue = getIssueById(issueId); if (!issue) return null; const issueLink = `${workspaceSlug}/projects/${projectId}/issues/${issueId}`; const copyToClipboard = async (e: React.MouseEvent) => { try { await copyUrlToClipboard(issueLink); setCopied(true); setTimeout(() => setCopied(false), 3000); } catch (error) { setCopied(false); } e.preventDefault(); e.stopPropagation(); }; return (
View issue {copied ? ( <> Copied! ) : ( <> )}
); });