import React, { useState } from 'react'; import { Loader2 } from 'lucide-react'; import { createTeam } from '../../api/teams'; import { ApiError } from '../../api/client'; import type { Team } from '../../types/api'; interface StepCreateTeamProps { teamName: string; teamDescription: string; onUpdate: (updates: { teamName: string; teamDescription: string }) => void; onNext: (team: Team) => void; } export function StepCreateTeam({ teamName, teamDescription, onUpdate, onNext, }: StepCreateTeamProps) { const [loading, setLoading] = useState(false); const [error, setError] = useState(null); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(null); if (!teamName.trim()) { setError('Назва спільноти обов\'язкова'); return; } setLoading(true); try { const team = await createTeam({ name: teamName.trim(), description: teamDescription.trim() || undefined, }); onNext(team); } catch (err) { if (err instanceof ApiError) { setError(err.message || 'Не вдалося створити спільноту. Спробуйте ще раз.'); } else { setError('Сталася помилка. Спробуйте ще раз.'); } } finally { setLoading(false); } }; return (

Створити спільноту

Спільнота = твоя команда, клуб чи проект. Для кожної спільноти автоматично створюється micro-DAO з власним управлінням і агентами.

onUpdate({ teamName: e.target.value, teamDescription })} placeholder="Наприклад: Моя команда" className="w-full px-4 py-2 border border-slate-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-slate-900 focus:border-transparent" disabled={loading} required />