/** Form for creating a new workspace. */ import { useState } from "react"; import { Icon } from "./icon"; import type { CreateWorkspaceRequest } from "../types/workspace"; export interface WorkspaceCreateFormProps { projectId: string; repoId: string; defaultBranch?: string; onSubmit: (data: CreateWorkspaceRequest) => Promise; onCancel: () => void; } export function WorkspaceCreateForm({ defaultBranch = "main", onSubmit, onCancel, }: WorkspaceCreateFormProps) { const [name, setName] = useState(""); const [branch, setBranch] = useState(defaultBranch); const [submitting, setSubmitting] = useState(false); const [error, setError] = useState(null); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (!name.trim()) { setError("Workspace name is required"); return; } setSubmitting(true); setError(null); try { await onSubmit({ name: name.trim(), branch: branch.trim() }); } catch (err) { setError(err instanceof Error ? err.message : "Failed to create workspace"); } finally { setSubmitting(false); } }; return (

Create Workspace

setName(e.target.value)} placeholder="e.g., feature-branch" disabled={submitting} />
setBranch(e.target.value)} placeholder="main" disabled={submitting} />
{error &&

{error}

}
); }