"use client"; import { IconRefresh, IconSettings, IconTrash } from "@tabler/icons-react"; import { Button } from "@kandev/ui/button"; import { Tooltip, TooltipContent, TooltipTrigger } from "@kandev/ui/tooltip"; import { useTranslation } from "react-i18next"; import Link from "@/components/routing/app-link"; import type { ContainerLiveStatus, SSHLiveStatus, TaskEnvironment, } from "@/lib/api/domains/task-environment-api"; import { executorProfileSettingsPath, kubernetesExecutorSettingsPath, } from "@/lib/settings/executor-settings-routes"; import type { KubernetesSession } from "@/lib/types/http-kubernetes"; import { cn } from "@/lib/utils"; import { EnvironmentInfo } from "./executor-environment-info"; type ExecutorEnvironmentDisclosureProps = { env: TaskEnvironment | null; container: ContainerLiveStatus | null; ssh: SSHLiveStatus | null; kubernetes: KubernetesSession | null; kubernetesLoaded: boolean; kubernetesError: string | null; loading: boolean; refreshing: boolean; isResetting: boolean; touch?: boolean; onRefresh: () => Promise; onReset: () => void; }; export function ExecutorEnvironmentDisclosure({ env, container, ssh, kubernetes, kubernetesLoaded, kubernetesError, loading, refreshing, isResetting, touch = false, onRefresh, onReset, }: ExecutorEnvironmentDisclosureProps) { return ( <> ) : null } /> {env?.executor_type !== "k8s" ? ( ) : null} ); } function KubernetesActions({ env, refreshing, touch, onRefresh, }: { env: TaskEnvironment; refreshing: boolean; touch: boolean; onRefresh: () => Promise; }) { const { t } = useTranslation(); const controlClassName = cn( "cursor-pointer rounded-md text-muted-foreground hover:bg-muted hover:text-foreground active:scale-[0.96]", touch ? "h-11 w-11" : "h-10 w-10", ); const settingsPath = env.executor_profile_id ? executorProfileSettingsPath(env.executor_profile_id) : kubernetesExecutorSettingsPath(env.executor_id); return (
{t("task:refresh")} {t("task:executorSettings")}
); } function ResetEnvironmentAction({ env, isResetting, onReset, }: { env: TaskEnvironment | null; isResetting: boolean; onReset: () => void; }) { const { t } = useTranslation(); const hasWorktreePath = Boolean(env?.worktree_path); return (
); } function ResetEnvironmentTooltip({ hasWorktreePath }: { hasWorktreePath: boolean }) { const { t } = useTranslation(); return (

{t("task:resetEnvironment2")}

{t("task:deletesTheCurrentTaskEnvironmentContainer")}

{t("task:anyUncommittedOrUnpushedChangesAre")}

{hasWorktreePath && (

{t("task:pushYourBranchToItsRemote")}

)}
); }