Skip to content

EPMRPP-117702 || Resize of blocks on Remote device tab - #37

Open
VaheSamsonyan wants to merge 2 commits into
developfrom
feature/EPMRPP-117702-Resize-of-blocks-on-Remote-device-tab
Open

EPMRPP-117702 || Resize of blocks on Remote device tab#37
VaheSamsonyan wants to merge 2 commits into
developfrom
feature/EPMRPP-117702-Resize-of-blocks-on-Remote-device-tab

Conversation

@VaheSamsonyan

@VaheSamsonyan VaheSamsonyan commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Description

added resizing opportunity for remote device tab

Visuals

splitter.mp4

Summary by CodeRabbit

  • New Features
    • Added a resizable split view for the remote device tab.
    • Users can drag the divider to adjust the widths of the video list and preview panels.
    • Added visual feedback while resizing, including a resize cursor and improved divider styling.
  • Improvements
    • Updated the layout to better fill available space and handle panel sizing and overflow.

@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

@VaheSamsonyan, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 41 minutes

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 234d956b-970e-43ba-ae57-0064b504a827

📥 Commits

Reviewing files that changed from the base of the PR and between e945ab8 and 4d9deac.

📒 Files selected for processing (2)
  • ui/src/components/remoteDeviceTab/remoteDeviceTab.scss
  • ui/src/components/remoteDeviceTab/remoteDeviceTab.tsx

Walkthrough

The remote device tab now uses a draggable splitter between the video list and preview panels. Pointer movement updates the left panel width while CSS provides constrained sizing, dragging behavior, and splitter visuals.

Changes

Remote device panel resizing

Layer / File(s) Summary
Split layout structure and sizing
ui/src/components/remoteDeviceTab/remoteDeviceTab.tsx, ui/src/components/remoteDeviceTab/remoteDeviceTab.scss
Adds panel sizing constants and defines the left panel, splitter, right panel, video panel, and preview panel layout.
Pointer resizing interaction
ui/src/components/remoteDeviceTab/remoteDeviceTab.tsx
Tracks drag state and pointer coordinates, updates the left panel width, and wires pointer events to the splitter.
Estimated code review effort: 3 (Moderate) ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant Splitter
  participant RemoteDeviceTab
  participant Panels
  User->>Splitter: Drag splitter
  Splitter->>RemoteDeviceTab: Send pointer movement
  RemoteDeviceTab->>RemoteDeviceTab: Calculate constrained left width
  RemoteDeviceTab->>Panels: Apply updated flex basis
Loading

Possibly related PRs

Suggested reviewers: allaprischepa, siarheirazuvalau, amsterget

Poem

I tug the splitter, quick and bright,
Making room from left to right.
Videos nest and previews gleam,
Panels stretch like a rabbit’s dream.
Hop, hop—layouts now feel right!

🚥 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 matches the main change: making blocks on the Remote device tab resizable.
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 unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/EPMRPP-117702-Resize-of-blocks-on-Remote-device-tab

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 4

🧹 Nitpick comments (2)
ui/src/components/remoteDeviceTab/remoteDeviceTab.scss (1)

45-82: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Splitter has no focus-visible style, consistent with missing keyboard support.

If keyboard operability is added to the splitter (see remoteDeviceTab.tsx Lines 184-191), this rule set will also need a :focus-visible style since none exists today.

Separately, the grip dots at Lines 58-81 use raw rgb(153, 153, 153) while the splitter face line (Line 53-54) and the rest of the file use design tokens like var(--rp-ui-base-e-91). This is inconsistent and likely won't track theme changes (e.g. dark mode) the way the rest of the component does.

🎨 Suggested token usage
   &::before {
     content: '';
     position: absolute;
     top: 15px;
     left: 50%;
     width: 1px;
     height: 23px;
-    background: rgb(153, 153, 153);
+    background: var(--rp-ui-base-e-91);
     transform: translateX(-50%);
   }
🤖 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 `@ui/src/components/remoteDeviceTab/remoteDeviceTab.scss` around lines 45 - 82,
Update the .columns-splitter styles to add a clear :focus-visible state for
keyboard interaction, and replace the raw rgb(153, 153, 153) values in its
::before and ::after grip styling with the appropriate existing design token
used by the splitter and surrounding component styles.
ui/src/components/remoteDeviceTab/remoteDeviceTab.tsx (1)

184-191: 🎯 Functional Correctness | 🔵 Trivial | ⚡ Quick win

Make the column splitter keyboard operable.

This separator is only mouse-driven; it has no focus/keyboard support or resize state announced to assistive tech. Make it focusable, add arrow-key resizing, and expose a value/range such as aria-valuenow/aria-valuemin/aria-valuemax/aria-orientation so keyboard users can resize the panels.

🤖 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 `@ui/src/components/remoteDeviceTab/remoteDeviceTab.tsx` around lines 184 -
191, Update the columns-splitter element and its associated splitter handlers to
support keyboard operation: make the separator focusable, handle horizontal
arrow keys to adjust the column size using the existing resize state/update
path, and expose the current value plus minimum, maximum, and horizontal
orientation through the appropriate ARIA attributes. Keep pointer resizing
behavior unchanged.
🤖 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.

Inline comments:
In `@ui/src/components/remoteDeviceTab/remoteDeviceTab.scss`:
- Around line 33-43: Update the flex sizing for .left-panel and .right-panel so
their combined minimum widths remain compatible with .columns when the drag
logic assigns a fixed pixel flexBasis. Remove the left panel’s non-shrinking
behavior and adjust the relevant minimum-width constraints, coordinating with
the drag sizing logic in remoteDeviceTab.tsx rather than adding unrelated
changes.

In `@ui/src/components/remoteDeviceTab/remoteDeviceTab.tsx`:
- Around line 165-208: Update the remote device columns sizing flow around
columnsRef, leftWidthPx, and the splitter handlers so a previously dragged
left-panel width is reclamped whenever the container shrinks, including browser
resize. Observe or otherwise respond to columnsRef size changes, cap the stored
width to the available container width while preserving the right-panel minimum,
and ensure the inline flex sizing does not retain a stale width that causes
overflow.
- Around line 138-146: Update handleSplitterPointerDown to proceed only for the
primary pointer/button interaction; return before preventDefault, drag state
updates, and pointer capture for right-click, middle-click, or non-primary
pointers, while preserving the existing drag initialization for valid primary
interactions.
- Around line 148-161: Reset dragging state when pointer capture is lost by
adding a handleSplitterLostPointerCapture callback near handleSplitterPointerUp
that clears isDragging, then wire it to the splitter div via
onLostPointerCapture. Preserve the existing pointer-up release behavior.

---

Nitpick comments:
In `@ui/src/components/remoteDeviceTab/remoteDeviceTab.scss`:
- Around line 45-82: Update the .columns-splitter styles to add a clear
:focus-visible state for keyboard interaction, and replace the raw rgb(153, 153,
153) values in its ::before and ::after grip styling with the appropriate
existing design token used by the splitter and surrounding component styles.

In `@ui/src/components/remoteDeviceTab/remoteDeviceTab.tsx`:
- Around line 184-191: Update the columns-splitter element and its associated
splitter handlers to support keyboard operation: make the separator focusable,
handle horizontal arrow keys to adjust the column size using the existing resize
state/update path, and expose the current value plus minimum, maximum, and
horizontal orientation through the appropriate ARIA attributes. Keep pointer
resizing behavior unchanged.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: fc6aa5db-050f-47bf-9bdc-d38962eebd71

📥 Commits

Reviewing files that changed from the base of the PR and between 60505f7 and e945ab8.

📒 Files selected for processing (2)
  • ui/src/components/remoteDeviceTab/remoteDeviceTab.scss
  • ui/src/components/remoteDeviceTab/remoteDeviceTab.tsx

Comment thread ui/src/components/remoteDeviceTab/remoteDeviceTab.scss
Comment thread ui/src/components/remoteDeviceTab/remoteDeviceTab.tsx
Comment thread ui/src/components/remoteDeviceTab/remoteDeviceTab.tsx
Comment thread ui/src/components/remoteDeviceTab/remoteDeviceTab.tsx
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