import { Component, createMemo } from "solid-js" import type { Instance } from "../types/instance" import { getInstanceSessionIndicatorStatus } from "../stores/session-status" import { FolderOpen, ShieldAlert, X } from "lucide-solid" import { useI18n } from "../lib/i18n" interface InstanceTabProps { instance: Instance active: boolean onSelect: () => void onClose: () => void } function getPathBasename(path: string): string { // Instance folders can be POSIX-like (/Users/...) on macOS/Linux or Windows-like (C:\Users\...). // Normalize by trimming trailing separators and then splitting on both '/' and '\\'. const normalized = path.replace(/[\\/]+$/, "") return normalized.split(/[\\/]/).pop() || path } const InstanceTab: Component = (props) => { const { t } = useI18n() const aggregatedStatus = createMemo(() => getInstanceSessionIndicatorStatus(props.instance.id)) const statusClassName = createMemo(() => { const status = aggregatedStatus() return status === "permission" ? "session-permission" : `session-${status}` }) const statusTitle = createMemo(() => { switch (aggregatedStatus()) { case "permission": return t("instanceTab.status.permission") case "compacting": return t("instanceTab.status.compacting") case "working": return t("instanceTab.status.working") default: return t("instanceTab.status.idle") } }) return (
) } export default InstanceTab