import { EnvironmentId } from "@t3tools/contracts"; import { LayersIcon } from "lucide-react"; import { useClientSettings } from "../../hooks/useSettings"; import { Button } from "../ui/button"; import { ProjectOrderList } from "./ProjectOrderList"; import { ProjectSettingsPanel } from "./ProjectSettingsPanel"; import { useSettingsScope } from "./SettingsScopeContext"; import { SettingsScopeNotice } from "./SettingsScopeNotice"; import { SettingsPageContainer } from "./settingsLayout"; import { ALL_ENVIRONMENTS_VALUE, selectEnvironmentAxis } from "./settingsScopeAxis"; export function ProjectsSettings() { const { search: value, scope, selectScope } = useSettingsScope(); const canOrderProjects = useClientSettings( (settings) => settings.boringSidebarEnabled || settings.sidebarProjectSortOrder === "manual", ); const unavailable = scope.kind === "unavailable" ? (

{scope.message}

{value.machine || value.checkout ? ( ) : null}
) : null; // Keep the panel mounted so it can follow members when regrouping changes the project key. const projectScope = scope.kind === "project" || scope.kind === "checkout" || (scope.kind === "unavailable" && (scope.reason === "project-missing" || scope.reason === "checkout-missing")); return (
{value.project && projectScope ? ( ) : unavailable ? ( unavailable ) : ( {canOrderProjects ? ( ) : ( Choose a project to manage its name, icon, checkouts and actions. )} )}
); }