This commit is contained in:
Timothy Jaeryang Baek
2026-03-29 21:59:51 -05:00
parent 6512e085c4
commit 4b35d70078
2 changed files with 6 additions and 13 deletions
+5 -3
View File
@@ -122,6 +122,8 @@
export let history; export let history;
export let taskIds = null; export let taskIds = null;
$: isActive = (taskIds && taskIds.length > 0) || (history.currentId && history.messages[history.currentId]?.done != true) || generating;
export let prompt = ''; export let prompt = '';
export let files = []; export let files = [];
@@ -1240,9 +1242,9 @@
/> />
<!-- Task list display --> <!-- Task list display -->
{#if chatTasks.length > 0} {#if isActive && chatTasks.length > 0}
<div class="mx-1"> <div class="mx-1">
<TaskList tasks={chatTasks} done={!generating} /> <TaskList tasks={chatTasks} />
</div> </div>
{/if} {/if}
@@ -1857,7 +1859,7 @@
</div> </div>
<div class="self-end flex space-x-1 mr-1 shrink-0 gap-[0.5px]"> <div class="self-end flex space-x-1 mr-1 shrink-0 gap-[0.5px]">
{#if (taskIds && taskIds.length > 0) || (history.currentId && history.messages[history.currentId]?.done != true) || generating} {#if isActive}
<div class=" flex items-center"> <div class=" flex items-center">
<Tooltip content={$i18n.t('Stop')}> <Tooltip content={$i18n.t('Stop')}>
<button <button
@@ -8,21 +8,12 @@
const i18n = getContext('i18n'); const i18n = getContext('i18n');
export let tasks: Array<{ id: string; content: string; status: string }> = []; export let tasks: Array<{ id: string; content: string; status: string }> = [];
export let done = false;
let collapsed = false; let collapsed = false;
$: completedCount = tasks.filter((t) => t.status === 'completed').length; $: completedCount = tasks.filter((t) => t.status === 'completed').length;
$: totalCount = tasks.length; $: totalCount = tasks.length;
$: inProgressCount = tasks.filter((t) => t.status === 'in_progress').length; $: hasActive = tasks.some((t) => t.status === 'pending' || t.status === 'in_progress');
$: pendingCount = tasks.filter((t) => t.status === 'pending').length;
// Hide once all work is effectively done:
// - no active tasks at all, OR
// - message is done and the only remaining active tasks are in_progress (no pending)
$: hasActive =
tasks.some((t) => t.status === 'pending' || t.status === 'in_progress') &&
!(done && pendingCount === 0 && inProgressCount > 0);
</script> </script>
{#if tasks.length > 0 && hasActive} {#if tasks.length > 0 && hasActive}