fix(ui): scope tool input toggle to current tool call

This commit is contained in:
Shantur Rathore
2026-02-19 20:42:23 +00:00
parent 09e7a3f8da
commit 3760ba2d7f
2 changed files with 9 additions and 9 deletions

View File

@@ -84,7 +84,7 @@ interface ToolCallProps {
export default function ToolCall(props: ToolCallProps) {
const { preferences, setDiffViewMode, setToolInputsVisibility } = useConfig()
const { preferences, setDiffViewMode } = useConfig()
const { isDark } = useTheme()
const { t } = useI18n()
const toolCallMemo = createMemo(() => props.toolCall)
@@ -173,8 +173,10 @@ export default function ToolCall(props: ToolCallProps) {
const [userExpanded, setUserExpanded] = createSignal<boolean | null>(null)
const toolInputsVisibility = createMemo(() => preferences().toolInputsVisibility || "hidden")
const isToolInputVisible = createMemo(() => toolInputsVisibility() !== "hidden")
const inputDefaultExpanded = createMemo(() => toolInputsVisibility() === "expanded")
const [toolInputVisibilityOverride, setToolInputVisibilityOverride] = createSignal<"hidden" | "expanded" | null>(null)
const effectiveToolInputsVisibility = createMemo(() => toolInputVisibilityOverride() ?? toolInputsVisibility())
const isToolInputVisible = createMemo(() => effectiveToolInputsVisibility() !== "hidden")
const inputDefaultExpanded = createMemo(() => effectiveToolInputsVisibility() === "expanded")
const [inputSectionOverride, setInputSectionOverride] = createSignal<boolean | null>(null)
const [outputSectionOverride, setOutputSectionOverride] = createSignal<boolean | null>(null)
const inputSectionExpanded = () => {
@@ -616,11 +618,9 @@ export default function ToolCall(props: ToolCallProps) {
if (!expanded()) {
toggle()
}
if (isToolInputVisible()) {
setToolInputsVisibility("hidden")
return
}
setToolInputsVisibility("expanded")
const currentlyVisible = isToolInputVisible()
setToolInputVisibilityOverride(currentlyVisible ? "hidden" : "expanded")
}
const renderer = createMemo(() => resolveToolRenderer(toolName()))

View File

@@ -134,7 +134,7 @@ function normalizeUiSettings(input?: Partial<UiSettings> | null): UiSettings {
toolOutputExpansion: sanitized.toolOutputExpansion ?? defaultUiSettings.toolOutputExpansion,
diagnosticsExpansion: sanitized.diagnosticsExpansion ?? defaultUiSettings.diagnosticsExpansion,
toolInputsVisibility:
sanitized.toolInputsVisibility === "collapsed" || sanitized.toolInputsVisibility === "expanded"
sanitized.toolInputsVisibility === "hidden" || sanitized.toolInputsVisibility === "collapsed" || sanitized.toolInputsVisibility === "expanded"
? sanitized.toolInputsVisibility
: defaultUiSettings.toolInputsVisibility,
showUsageMetrics: sanitized.showUsageMetrics ?? defaultUiSettings.showUsageMetrics,