Embed chat input within transcript column#45
Embed chat input within transcript column#45vinhnx wants to merge 1 commit intocodex/migrate-vtcode-project-to-ratatui-qicncafrom
Conversation
There was a problem hiding this comment.
Codex Review: Here are some suggestions.
Reply with @codex fix comments to fix any unresolved comments.
About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you open a pull request for review, mark a draft as ready, or comment "@codex review". If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex fix this CI failure" or "@codex address that feedback".
| overflow: Overflow::Hidden, | ||
| ) { | ||
| #(transcript_rows) | ||
| } | ||
| View(flex_direction: FlexDirection::Column, gap: 1u16) { | ||
| View( | ||
| flex_direction: FlexDirection::Row, | ||
| align_items: AlignItems::Center, | ||
| gap: 1u16, | ||
| ) { | ||
| Text( | ||
| content: prompt_prefix_value.clone(), | ||
| color: prompt_style_value.color.or(theme_value.secondary), | ||
| weight: prompt_style_value.weight, | ||
| italic: prompt_style_value.italic, | ||
| wrap: TextWrap::NoWrap, | ||
| ) | ||
| TextInput( | ||
| has_focus: true, | ||
| value: input_value_string.clone(), | ||
| on_change: move |value| { | ||
| let mut handle = input_value_state; | ||
| handle.set(value); | ||
| }, | ||
| color: theme_value.foreground, | ||
| ) | ||
| View(flex_direction: FlexDirection::Column, gap: 1u16) { | ||
| View( | ||
| flex_direction: FlexDirection::Row, | ||
| align_items: AlignItems::Center, | ||
| gap: 1u16, | ||
| ) { | ||
| Text( | ||
| content: prompt_prefix_value.clone(), | ||
| color: prompt_style_value.color.or(theme_value.secondary), | ||
| weight: prompt_style_value.weight, | ||
| italic: prompt_style_value.italic, | ||
| wrap: TextWrap::NoWrap, | ||
| ) | ||
| TextInput( | ||
| has_focus: true, | ||
| value: input_value_string.clone(), | ||
| on_change: move |value| { | ||
| let mut handle = input_value_state; | ||
| handle.set(value); | ||
| }, | ||
| color: theme_value.foreground, | ||
| ) | ||
| } | ||
| #(placeholder_element.into_iter()) | ||
| } |
There was a problem hiding this comment.
[P1] Preserve input visibility when transcript overflows
The text input is now rendered inside the same View that holds the transcript and still has overflow: Hidden with a fixed height. Once enough transcript rows are present to fill that container, the input View is pushed beyond the bottom and hidden along with the overflow content, so the user can no longer see or interact with the prompt field until they manually scroll to the very bottom. Before this change the input sat outside the scrollable region and remained visible regardless of scroll position. This regression makes sending new messages impossible in long sessions.
Useful? React with 👍 / 👎.
Summary
Testing
https://chatgpt.com/codex/tasks/task_e_68d004e2470083239d33dd6f75d19835