import React from "react"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Star, Globe, Lock, Shield, Info, MonitorCog } from "lucide-react"; import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, } from "@/components/ui/tooltip"; import { cn } from "@/lib/utils"; import type { MirrorStrategy, GiteaOrgVisibility } from "@/types/config"; interface OrganizationConfigurationProps { strategy: MirrorStrategy; destinationOrg?: string; starredReposOrg?: string; personalReposOrg?: string; visibility: GiteaOrgVisibility; onDestinationOrgChange: (org: string) => void; onStarredReposOrgChange: (org: string) => void; onPersonalReposOrgChange: (org: string) => void; onVisibilityChange: (visibility: GiteaOrgVisibility) => void; } const visibilityOptions = [ { value: "public" as GiteaOrgVisibility, label: "Public", icon: Globe, description: "Visible to everyone" }, { value: "private" as GiteaOrgVisibility, label: "Private", icon: Lock, description: "Visible to members only" }, { value: "limited" as GiteaOrgVisibility, label: "Limited", icon: Shield, description: "Visible to logged-in users" }, ]; export const OrganizationConfiguration: React.FC = ({ strategy, destinationOrg, starredReposOrg, personalReposOrg, visibility, onDestinationOrgChange, onStarredReposOrgChange, onPersonalReposOrgChange, onVisibilityChange, }) => { return (

Organization Configuration

{/* First row - Organization inputs with consistent layout */}
{/* Left column - always shows starred repos org */}
onStarredReposOrgChange(e.target.value)} placeholder="starred" className="" />

Keep starred repos organized separately

{/* Right column - shows destination org for single-org/mixed, personal repos org for preserve, empty div for others */} {strategy === "single-org" || strategy === "mixed" ? (
onDestinationOrgChange(e.target.value)} placeholder="github-mirrors" className="" />

{strategy === "mixed" ? "All personal repos will go to this organization" : "Organization for consolidated repositories" }

) : strategy === "preserve" ? (
onPersonalReposOrgChange(e.target.value)} placeholder="my-personal-mirrors" className="" />

Override destination for your personal repos

) : (
)}
{/* Second row - Organization Visibility (always shown) */}
{visibilityOptions.map((option) => { const Icon = option.icon; const isSelected = visibility === option.value; return (

{option.description}

); })}
); };