Skip to content

Streamline message navigation and search - #147

Open
soliktomasz wants to merge 1 commit into
mainfrom
codex/message-navigation-search
Open

Streamline message navigation and search#147
soliktomasz wants to merge 1 commit into
mainfrom
codex/message-navigation-search

Conversation

@soliktomasz

@soliktomasz soliktomasz commented Jul 9, 2026

Copy link
Copy Markdown
Owner

Summary

  • Move deferred-message controls and their validation into the existing More menu.
  • Simplify the message search row into a dedicated search input with a clear action.
  • Give pagination a visually grouped Previous / page / Next control and add focused view-structure tests.

Validation

  • rtk dotnet test — 664 passed, 0 warnings
  • rtk dotnet build — 0 errors, 0 warnings

Summary by CodeRabbit

  • UI Improvements

    • Updated the message pagination footer with clearer visual grouping and spacing for navigation controls.
    • Simplified the message search row layout for a cleaner, more compact appearance.
    • Moved deferred-message actions and related validation feedback into the “More message actions” menu.
  • Accessibility

    • Improved navigation labels and structure for pagination controls to better support assistive technologies.

@coderabbitai

coderabbitai Bot commented Jul 9, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Restyles the pagination footer navigation controls with a new bordered group style and adjusted spacing, and relocates deferred-receive message controls and locked-message validation from the search row into the overflow actions flyout, refactoring the search row into a column-based layout. Adds corresponding XAML-parsing tests for both areas.

Changes

Pagination Footer Navigation Group

Layer / File(s) Summary
Pagination footer style and layout changes
BusLane/Views/Controls/MessagePaginationFooterView.axaml
Adds a pager-navigation-group border style, applies pager-range-summary class to the range summary, and wraps previous/badge/next controls in the new styled border with reduced spacing.
Pagination footer accessibility test
BusLane.Tests/Views/MessagePaginationFooterViewTests.cs
Parses the AXAML as XML to assert layout, style setters, automation names for prev/next buttons, and control ordering.

Deferred-Receive Relocation into Overflow Menu

Layer / File(s) Summary
Deferred-receive and search row layout changes
BusLane/Views/Controls/MessagesPanelView.axaml
Moves deferred sequence textbox, receive-deferred button, and locked-message validation text into the actions flyout; refactors search row into a column-based layout with search icon, textbox, and clear button.
Deferred-receive relocation test
BusLane.Tests/Views/MessagesPanelViewTests.cs
Parses the AXAML as XML to verify deferred-receive bindings exist in the overflow menu and are absent from the search surface.

Estimated code review effort: 2 (Simple) | ~12 minutes

Possibly related PRs

  • soliktomasz/BusLane#79: Both PRs modify the pagination footer structure and related PageLabel/PageRangeText/PageDetailText controls.

Suggested labels: enhancement

Poem

A bunny hops through XAML trees,
Wrapping borders with gentle ease. 🐰
Deferred messages tucked away,
Into the flyout, they now stay.
Tests confirm each hop and bind—
A tidy panel, well-designed!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main UI changes to message navigation and search.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/message-navigation-search

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@soliktomasz
soliktomasz marked this pull request as ready for review July 9, 2026 19:26

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🧹 Nitpick comments (1)
BusLane.Tests/Views/MessagePaginationFooterViewTests.cs (1)

65-67: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Add an explicit assertion for the page label TextBlock.

The .Single() call at line 65 acts as an implicit assertion (throws if not found), but every other check in this test uses FluentAssertions. For consistency, add an explicit .Should() assertion.

♻️ Suggested refactor for consistency
         navigationGroup.Descendants()
             .Single(element => element.Name.LocalName == "TextBlock" &&
-                               element.Attribute("Text")?.Value == "{Binding Pagination.PageLabel}");
+                               element.Attribute("Text")?.Value == "{Binding Pagination.PageLabel}")
+            .Should()
+            .NotBeNull();
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@BusLane.Tests/Views/MessagePaginationFooterViewTests.cs` around lines 65 -
67, The page label check in MessagePaginationFooterViewTests currently relies on
an implicit assertion via .Single(), which is inconsistent with the rest of the
test. Update the assertion around navigationGroup.Descendants() to use
FluentAssertions explicitly for the TextBlock with Text == "{Binding
Pagination.PageLabel}", keeping the existing intent but making the failure
expectation consistent and clear.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@BusLane.Tests/Views/MessagePaginationFooterViewTests.cs`:
- Around line 65-67: The page label check in MessagePaginationFooterViewTests
currently relies on an implicit assertion via .Single(), which is inconsistent
with the rest of the test. Update the assertion around
navigationGroup.Descendants() to use FluentAssertions explicitly for the
TextBlock with Text == "{Binding Pagination.PageLabel}", keeping the existing
intent but making the failure expectation consistent and clear.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 25831595-f585-4afd-9a32-061d841f3c2a

📥 Commits

Reviewing files that changed from the base of the PR and between 653de4e and 53656d3.

📒 Files selected for processing (4)
  • BusLane.Tests/Views/MessagePaginationFooterViewTests.cs
  • BusLane.Tests/Views/MessagesPanelViewTests.cs
  • BusLane/Views/Controls/MessagePaginationFooterView.axaml
  • BusLane/Views/Controls/MessagesPanelView.axaml

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.

1 participant