diff --git a/webview-ui/src/components/chat/ChatView.tsx b/webview-ui/src/components/chat/ChatView.tsx index 9b8c96dea1d..bbbe1a54766 100644 --- a/webview-ui/src/components/chat/ChatView.tsx +++ b/webview-ui/src/components/chat/ChatView.tsx @@ -1,5 +1,5 @@ import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react" -import { useDeepCompareEffect, useEvent, useMount } from "react-use" +import { useDeepCompareEffect, useEvent, useMount, useWindowSize } from "react-use" import debounce from "debounce" import { Virtuoso, type VirtuosoHandle } from "react-virtuoso" import removeMd from "remove-markdown" @@ -1743,6 +1743,22 @@ const ChatViewComponent: React.ForwardRefRenderFunction { + if (!windowHeight) return 1000 // Default fallback + + // Scale the bottom viewport based on window height + // Minimum of 500px for very small screens, maximum of 2000px for large screens + const scaledViewport = Math.min(2000, Math.max(500, windowHeight * 0.8)) + + return Math.round(scaledViewport) + }, [windowHeight]) + useImperativeHandle(ref, () => ({ acceptInput: () => { if (enableButtons && primaryButtonText) { @@ -1870,7 +1886,7 @@ const ChatViewComponent: React.ForwardRefRenderFunction {