diff --git a/packages/ui/src/components/instance-tab.tsx b/packages/ui/src/components/instance-tab.tsx index 5c4e821b..fc3a8272 100644 --- a/packages/ui/src/components/instance-tab.tsx +++ b/packages/ui/src/components/instance-tab.tsx @@ -1,5 +1,6 @@ -import { Component } from "solid-js" +import { Component, createMemo } from "solid-js" import type { Instance } from "../types/instance" +import { getInstanceSessionIndicatorStatus } from "../stores/session-status" import { FolderOpen, X } from "lucide-solid" interface InstanceTabProps { @@ -26,6 +27,24 @@ function formatFolderName(path: string, instances: Instance[], currentInstance: } 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 (