import { useState } from 'react'; import * as Dialog from '@radix-ui/react-dialog'; import { classNames } from '~/utils/classNames'; import type { GitHubRepoInfo } from '~/components/@settings/tabs/connections/types/GitHub'; import { GitBranch } from '@phosphor-icons/react'; interface GitHubBranch { name: string; default?: boolean; } interface CreateBranchDialogProps { isOpen: boolean; onClose: () => void; onConfirm: (branchName: string, sourceBranch: string) => void; repository: GitHubRepoInfo; branches?: GitHubBranch[]; } export function CreateBranchDialog({ isOpen, onClose, onConfirm, repository, branches }: CreateBranchDialogProps) { const [branchName, setBranchName] = useState(''); const [sourceBranch, setSourceBranch] = useState(branches?.find((b) => b.default)?.name || 'main'); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); onConfirm(branchName, sourceBranch); setBranchName(''); onClose(); }; return ( Create New Branch
setBranchName(e.target.value)} placeholder="feature/my-new-branch" className={classNames( 'w-full px-3 py-2 rounded-lg', 'bg-[#F5F5F5] dark:bg-[#1A1A1A]', 'border border-[#E5E5E5] dark:border-[#1A1A1A]', 'text-bolt-elements-textPrimary placeholder:text-bolt-elements-textTertiary', 'focus:outline-none focus:ring-2 focus:ring-purple-500/50', )} required />

Branch Overview

  • Repository: {repository.name}
  • {branchName && (
  • New branch will be created as: {branchName}
  • )}
  • Based on: {sourceBranch}
); }