"use client"; import { ChevronsUpDown, ExternalLink } from "lucide-react"; import { useTranslations } from "next-intl"; import { useState } from "react"; import { MultiSitesSelector, formatMultiSitesSelectorLabel } from "./multi-site-selector"; import { SitesSelector, type Selectedsite } from "./site-selector"; import { Button } from "./ui/button"; import { Input } from "./ui/input"; import { Popover, PopoverContent, PopoverTrigger } from "./ui/popover"; type SingleSiteProps = { multiSite?: false; selectedSite: Selectedsite | null; onSiteChange: (site: Selectedsite | null) => void; }; type MultiSiteProps = { multiSite: true; selectedSites: Selectedsite[]; onSitesChange: (sites: Selectedsite[]) => void; }; export type BrowserGatewayTargetFormProps = { orgId: string; destination: string; defaultPort: number; destinationPort: string; onDestinationChange: (v: string) => void; onDestinationPortChange: (v: string) => void; learnMoreHref?: string; } & (SingleSiteProps | MultiSiteProps); export function BrowserGatewayTargetForm(props: BrowserGatewayTargetFormProps) { const t = useTranslations(); const [siteOpen, setSiteOpen] = useState(false); const siteSelector = props.multiSite === true ? ( ) : ( { props.onSiteChange(site); setSiteOpen(false); }} /> ); return (
{siteSelector}
props.onDestinationChange(e.target.value) } />
props.onDestinationPortChange(e.target.value) } />
{props.multiSite === true && props.selectedSites.length > 1 && (

{t("bgTargetMultiSiteDisclaimer")}{" "} {t("learnMore")}

)}
); }