import React, { useState, useEffect } from "react"; import { useParams, Link, useNavigate, Routes, Route } from "react-router-dom"; import { SettingsTabLayout } from "../components/settings-tab-layout"; import { RepositoriesSettingsTab } from "../components/repositories-settings-tab"; import { apiClient } from "../api/client"; import { Project } from "../types"; const tabs = [ { id: "general", label: "General", path: "general" }, { id: "repositories", label: "Repositories", path: "repositories" }, { id: "members", label: "Members", path: "members" }, ]; const GeneralSettings: React.FC<{ project: Project; projectId: string; }> = ({ project, projectId }) => { const navigate = useNavigate(); const [name, setName] = useState(project.name); const [description, setDescription] = useState(project.description || ""); const [saving, setSaving] = useState(false); const [error, setError] = useState(""); const handleSave = async () => { setSaving(true); try { await apiClient.patch(`/projects/${projectId}`, { name, description, }); } catch (err) { setError("Failed to save changes"); } finally { setSaving(false); } }; const handleDelete = async () => { if (!window.confirm("Are you sure you want to delete this project?")) return; try { await apiClient.delete(`/projects/${projectId}`); navigate("/projects"); } catch (err) { setError("Failed to delete project"); } }; return (

General Settings

{error &&
{error}
}
setName(e.target.value)} className="form-input" />