Skip to content

fix(chrome extension): Simplify NRFPage ChatInputBar layout to use normal flex flow#8267

Merged
jmelahman merged 1 commit intomainfrom
claude/slack-fix-chrome-extension-bug-Nxk4s
Feb 9, 2026
Merged

fix(chrome extension): Simplify NRFPage ChatInputBar layout to use normal flex flow#8267
jmelahman merged 1 commit intomainfrom
claude/slack-fix-chrome-extension-bug-Nxk4s

Conversation

@rohoswagger
Copy link
Copy Markdown
Contributor

@rohoswagger rohoswagger commented Feb 9, 2026

Description

Refactored the ChatInputBar container layout in NRFPage to use normal flexbox flow instead of absolute positioning. This change:

  • Removes the conditional absolute positioning logic that was applied when hasMessages was true
  • Simplifies the DOM structure by eliminating one level of nested divs
  • Aligns the layout behavior with AppPage's approach for consistency
  • Maintains the same visual spacing with the existing Spacer component and flex-1 spacer for welcome message state

The ChatInputBar now flows naturally within the flex container, making the layout more predictable and easier to maintain.

How Has This Been Tested?

  • Verified ChatInputBar displays correctly with and without messages
  • Confirmed spacing and alignment match previous behavior
  • Tested that the welcome message state still properly positions content with the flex-1 spacer
Screen.Recording.2026-02-09.at.09.17.59.mov

Additional Options

  • [Required] I have considered whether this PR needs to be cherry-picked to the latest beta branch.
  • [Optional] Override Linear Check

https://claude.ai/code/session_01C81TQdHFsmjYkNRiU8ck7R


Summary by cubic

Moved the NRFPage ChatInputBar into normal flex flow so it sits below messages and doesn’t overlay the history. Matches AppPage behavior and simplifies the layout.

  • Bug Fixes

    • Removed absolute positioning that caused the input bar to overlay the ChatScrollContainer.
  • Refactors

    • Dropped a nested container and used a single flex wrapper with max-width and padding; kept Spacer and the welcome-state flex-1 to preserve spacing.

Written for commit 3162a94. Summary will update on new commits.

The ChatInputBar in NRFPage was overlaying on top of the message
history because it used absolute positioning (bottom-6) when there
were messages, while the ChatScrollContainer filled the entire height.

Changed the layout to match AppPage's approach: the ChatInputBar is now
in normal flex flow after the ChatScrollContainer, so it naturally sits
below the messages without any overlay issues.

Changes:
- Removed absolute positioning from ChatInputBar container
- Simplified the container structure (removed extra nested div)
- ChatScrollContainer now properly shares vertical space with input bar

Slack thread: https://onyx-company.slack.com/archives/C0832RVRVG8/p1770403825096009?thread_ts=1770171998.130649&cid=C0832RVRVG8

https://claude.ai/code/session_01C81TQdHFsmjYkNRiU8ck7R
@rohoswagger rohoswagger changed the title Simplify NRFPage ChatInputBar layout to use normal flex flow fix(chrome extension): Simplify NRFPage ChatInputBar layout to use normal flex flow Feb 9, 2026
@jmelahman jmelahman marked this pull request as ready for review February 9, 2026 18:12
@jmelahman jmelahman requested a review from a team as a code owner February 9, 2026 18:12
@jmelahman jmelahman added this pull request to the merge queue Feb 9, 2026
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Feb 9, 2026

Greptile Overview

Greptile Summary

This PR refactors the Chrome extension NRFPage chat layout so ChatInputBar participates in normal flexbox flow rather than being absolutely positioned over the message history. The change simplifies the DOM structure (removing a wrapper/conditional positioning logic) and aligns NRFPage’s layout strategy with AppPage, so the input bar sits under ChatScrollContainer instead of overlaying it when messages exist.

Confidence Score: 5/5

  • This PR looks safe to merge and is unlikely to introduce functional regressions.
  • The change is a straightforward layout refactor in a single React component, removing absolute positioning in favor of standard flexbox flow. There are no apparent state/logic changes, no new side effects, and the diff surface area is small.
  • No files require special attention

Important Files Changed

Filename Overview
web/src/app/app/nrf/NRFPage.tsx Simplifies NRFPage chat layout by moving ChatInputBar into normal flex flow and removing conditional absolute positioning; no correctness issues found in the diff for typical render states, but verify the new container still preserves scroll/height constraints across all message and welcome states.

Sequence Diagram

sequenceDiagram
    participant U as User
    participant NRF as NRFPage
    participant CSC as ChatScrollContainer
    participant CIB as ChatInputBar

    U->>NRF: Navigate to NRF page
    NRF->>CSC: Render message history
    NRF->>CIB: Render input bar
    Note over NRF,CIB: PR change: CIB is in normal flex flow
    CSC-->>NRF: Height constrained by flex container
    CIB-->>NRF: Sits below history (no overlay)
    U->>CIB: Type / submit message
    CIB-->>NRF: onSubmit callbacks
    NRF-->>CSC: Append message / scroll
Loading

Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

Merged via the queue into main with commit 7644e22 Feb 9, 2026
136 of 148 checks passed
@jmelahman jmelahman deleted the claude/slack-fix-chrome-extension-bug-Nxk4s branch February 9, 2026 18:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants