import { useState } from 'react'; import { Button } from '@renderer/components/ui/button'; import { Tooltip, TooltipContent, TooltipTrigger } from '@renderer/components/ui/tooltip'; import { formatMemberLaunchDiagnosticsPayload, type MemberLaunchDiagnosticsPayload, } from '@renderer/utils/memberLaunchDiagnostics'; import { Check, ClipboardList } from 'lucide-react'; interface MemberLaunchDiagnosticsButtonProps { payload: MemberLaunchDiagnosticsPayload; label?: string; className?: string; size?: 'icon' | 'sm'; } export const MemberLaunchDiagnosticsButton = ({ payload, label, className, size = label ? 'sm' : 'icon', }: MemberLaunchDiagnosticsButtonProps): React.JSX.Element => { const [copied, setCopied] = useState(false); const copyDiagnostics = async (event: React.MouseEvent): Promise => { event.preventDefault(); event.stopPropagation(); try { await navigator.clipboard.writeText(formatMemberLaunchDiagnosticsPayload(payload)); setCopied(true); window.setTimeout(() => setCopied(false), 1500); } catch { setCopied(false); } }; const icon = copied ? : ; const tooltip = copied ? 'Diagnostics copied' : 'Copy diagnostics'; return ( {tooltip} ); };