[feat]: show indicator for in progress chats in the sessions list (#5417)

This commit is contained in:
Rhys Sullivan
2025-12-11 21:57:03 -05:00
committed by GitHub
parent a5cb4e41f5
commit 11efda3f5c
2 changed files with 15 additions and 1 deletions
@@ -8,6 +8,7 @@ import { Keybind } from "@/util/keybind"
import { useTheme } from "../context/theme"
import { useSDK } from "../context/sdk"
import { DialogSessionRename } from "./dialog-session-rename"
import "opentui-spinner/solid"
export function DialogSessionList() {
const dialog = useDialog()
@@ -22,6 +23,8 @@ export function DialogSessionList() {
const currentSessionID = createMemo(() => (route.data.type === "session" ? route.data.sessionID : undefined))
const spinnerFrames = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]
const options = createMemo(() => {
const today = new Date().toDateString()
return sync.data.session
@@ -34,12 +37,15 @@ export function DialogSessionList() {
category = "Today"
}
const isDeleting = toDelete() === x.id
const status = sync.data.session_status[x.id]
const isWorking = status?.type === "busy"
return {
title: isDeleting ? `Press ${deleteKeybind} again to confirm` : x.title,
bg: isDeleting ? theme.error : undefined,
value: x.id,
category,
footer: Locale.time(x.time.updated),
gutter: isWorking ? <spinner frames={spinnerFrames} interval={80} color={theme.primary} /> : undefined,
}
})
.slice(0, 150)