'use client'; import { useState } from 'react'; import { createInvitation, InvitationResponse } from '@/lib/api'; interface InviteModalProps { taskId: string; token: string; userId: string; onClose: () => void; } export default function InviteModal({ taskId, token, userId, onClose }: InviteModalProps) { const [email, setEmail] = useState(''); const [name, setName] = useState(''); const [message, setMessage] = useState(''); const [loading, setLoading] = useState(false); const [result, setResult] = useState(null); const [error, setError] = useState(''); const [copied, setCopied] = useState(false); async function handleInvite() { setLoading(true); setError(''); try { const res = await createInvitation(token, { task_id: taskId, invitee_email: email || undefined, invitee_name: name || undefined, message: message || undefined, inviter_id: userId, }); setResult(res.data); } catch (e) { setError(e instanceof Error ? e.message : 'Chyba pri vytvareni pozvanky'); } setLoading(false); } async function copyLink() { if (!result) return; try { await navigator.clipboard.writeText(result.link); setCopied(true); setTimeout(() => setCopied(false), 2000); } catch { // Fallback const input = document.createElement('input'); input.value = result.link; document.body.appendChild(input); input.select(); document.execCommand('copy'); document.body.removeChild(input); setCopied(true); setTimeout(() => setCopied(false), 2000); } } return (
e.stopPropagation()} >

Pozvat do ukolu

{!result ? (
setName(e.target.value)} placeholder="Jmeno (nepovinne)" className="w-full px-4 py-3 rounded-lg border dark:border-gray-600 bg-white dark:bg-gray-800 focus:ring-2 focus:ring-blue-500 outline-none" /> setEmail(e.target.value)} placeholder="Email (nepovinne)" className="w-full px-4 py-3 rounded-lg border dark:border-gray-600 bg-white dark:bg-gray-800 focus:ring-2 focus:ring-blue-500 outline-none" />