diff --git a/frontend/src/lib/components/home/HomeAIChat.svelte b/frontend/src/lib/components/home/HomeAIChat.svelte index e8bad505d9..0aad0adb1a 100644 --- a/frontend/src/lib/components/home/HomeAIChat.svelte +++ b/frontend/src/lib/components/home/HomeAIChat.svelte @@ -24,6 +24,10 @@ import { useReducedMotion } from '$lib/svelte5Utils.svelte' import { BROWSER } from 'esm-env' import HomeConnectDrawer from './HomeConnectDrawer.svelte' + import HomeComposerSkeleton, { + composerHeight, + rememberComposerHeight + } from './HomeComposerSkeleton.svelte' import { prefersSessionHandoff } from '../copilot/chat/global/gate' import PageHeaderContent from '$lib/components/PageHeaderContent.svelte' import DropdownV2 from '$lib/components/DropdownV2.svelte' @@ -132,13 +136,23 @@ fork shares its parent's, and remounting for it only flashes the block. --> {#if HomeSessionStarter && sessionState.hydrated && (rulesReady || shownForRoot === $currentWorkspaceRootId)} {#key $currentWorkspaceRootId} - (shownForRoot = $currentWorkspaceRootId)} /> + (shownForRoot = $currentWorkspaceRootId)} + {placeholder} + onSettled={(height) => rememberComposerHeight($workspaceStore ?? undefined, height)} + /> {/key} + {:else} + {@render placeholder()} {/if} {/if} +{#snippet placeholder()} + +{/snippet} + + {#if open} +
+
+ + + + + {STARTER_PLACEHOLDER} + +
+
+
+ {@render bar('w-24')} + {@render bar('w-20')} +
+ {@render bar('w-12')} + {@render sendButton()} +
+
+ {#if suggestions} +
+ {#each ['w-20', 'w-24', 'w-24'] as width, i (i)} + + {@render bar(width)} + + {/each} +
+ {/if} + {:else} +
+ + + + + {STARTER_PLACEHOLDER} + +
+ {@render bar('w-12')} + {@render sendButton()} +
+
+ {/if} + diff --git a/frontend/src/lib/components/sessions/HomeSessionStarter.svelte b/frontend/src/lib/components/sessions/HomeSessionStarter.svelte index 92dcc4dc72..9ab68c3742 100644 --- a/frontend/src/lib/components/sessions/HomeSessionStarter.svelte +++ b/frontend/src/lib/components/sessions/HomeSessionStarter.svelte @@ -1,5 +1,5 @@