import { Button } from "@/components/ui/button"; import { ExternalLink, Globe, Terminal } from "lucide-react"; import { api } from "@/utils/api"; import { toast } from "sonner"; import { Toggle } from "@/components/ui/toggle"; import { RedbuildCompose } from "./rebuild-compose"; import { DeployCompose } from "./deploy-compose"; import { StopCompose } from "./stop-compose"; import { DockerTerminalModal } from "../../settings/web-server/docker-terminal-modal"; import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu"; import Link from "next/link"; interface Props { composeId: string; } export const ComposeActions = ({ composeId }: Props) => { const { data, refetch } = api.compose.one.useQuery( { composeId, }, { enabled: !!composeId }, ); const { mutateAsync: update } = api.compose.update.useMutation(); const extractDomains = (env: string) => { const lines = env.split("\n"); const hostLines = lines.filter((line) => { const [key, value] = line.split("="); return key?.trim().endsWith("_HOST"); }); const hosts = hostLines.map((line) => { const [key, value] = line.split("="); return value ? value.trim() : ""; }); return hosts; }; const domains = extractDomains(data?.env || ""); return (