import React from 'react'; import { WorktreeSectionContent } from '@/components/sections/openchamber/WorktreeSectionContent'; import { ProjectActionsSection } from '@/components/sections/projects/ProjectActionsSection'; import { ProjectIdentityFields } from '@/components/sections/projects/ProjectIdentityFields'; import { useProjectIdentityForm, type ProjectIdentitySaveData, } from '@/components/sections/projects/useProjectIdentityForm'; import { useProjectIdentityAutoSave } from '@/components/sections/projects/useProjectIdentityAutoSave'; import type { ProjectEntry } from '@/lib/api/types'; type ProjectSettingsPanelProps = { project: ProjectEntry | null; onIdentitySave: (data: ProjectIdentitySaveData) => void | Promise; /** * The project-edit dialog hides the worktree section — worktrees have * their own full-page surface (project menu → Manage worktrees). Settings * keeps the full panel. */ showWorktrees?: boolean; }; export const ProjectSettingsPanel: React.FC = ({ project, onIdentitySave, showWorktrees = true, }) => { const form = useProjectIdentityForm(project); const projectRef = React.useMemo(() => { if (!project) { return null; } return { id: project.id, path: project.path }; }, [project]); const handleIdentitySave = React.useCallback(async (data: ProjectIdentitySaveData) => { await onIdentitySave(data); }, [onIdentitySave]); useProjectIdentityAutoSave(form, handleIdentitySave); if (!project || !projectRef) { return null; } return (
{showWorktrees ? : null}
); };