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" interface InstanceTabProps { instance: Instance active: boolean onSelect: () => void onClose: () => void } function formatFolderName(path: string, instances: Instance[], currentInstance: Instance): string { const name = path.split("/").pop() || path const duplicates = instances.filter((i) => { const iName = i.folder.split("/").pop() || i.folder return iName === name }) if (duplicates.length > 1) { const index = duplicates.findIndex((i) => i.id === currentInstance.id) return `~/${name} (${index + 1})` } return `~/${name}` } const InstanceTab: Component = (props) => { 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 "Waiting on permission" case "compacting": return "Compacting" case "working": return "Working" default: return "Idle" } }) return (
) } export default InstanceTab