Skip to content

fix(web): prevent Edit Tracker Name dialog overflow#797

Merged
s0up4200 merged 1 commit intomainfrom
fix/edit-tracker-dialog-overflow-772
Dec 15, 2025
Merged

fix(web): prevent Edit Tracker Name dialog overflow#797
s0up4200 merged 1 commit intomainfrom
fix/edit-tracker-dialog-overflow-772

Conversation

@s0up4200
Copy link
Collaborator

@s0up4200 s0up4200 commented Dec 15, 2025

Summary

  • Use fixed height ScrollArea (h-[300px]) for vertical scrolling
  • Switch domain rows from flexbox to CSS grid for proper width constraint
  • Long domain names now truncate with ellipsis and show full URL on hover

Fixes #772

Summary by CodeRabbit

Release Notes

  • Style

    • Improved Dashboard layout with fixed-height sections for better scrolling behavior in tracker breakdown and domain lists
    • Enhanced domain name display with text truncation and tooltips for improved readability
  • Refactor

    • Unified domain selection and inclusion logic across customization, import, and export workflows

✏️ Tip: You can customize this high-level summary in your review settings.

- Use fixed height ScrollArea (h-[300px]) for vertical scrolling
- Switch domain rows from flexbox to CSS grid for proper width constraint
- Long domain names now truncate with ellipsis and show full URL on hover

Fixes #772
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 15, 2025

Walkthrough

The Dashboard component's tracker customization interface has been refactored to use fixed-height scrollable containers and updated grid layouts for improved handling of long domain lists, replacing previous ScrollArea wrappers and adjusting domain row rendering logic.

Changes

Cohort / File(s) Change Summary
Tracker Customization UI Layout
web/src/pages/Dashboard.tsx
Updated TrackerBreakdownCard and customization dialog layouts to use fixed-height scrollable containers (h-[300px]), replaced ScrollArea wrappers, refactored grid layouts for domain rows (grid-cols-[auto_1fr_auto_auto] for multiple, grid-cols-[1fr] for single), updated domain display to use truncated text with title attributes, adapted checkbox logic for primary/secondary domains, and adjusted import/export UI to align with new panel structure.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

  • Primary/secondary domain inclusion logic application across breakdown card, customization dialog, and import/export sections
  • Grid layout responsiveness and conditional rendering adjustments
  • Verification of domain row structure consistency across all affected UI regions

Possibly related PRs

Suggested labels

web

Poem

🐰 Long scrolls of trackers no longer make us weep,
Fixed heights now hold our domains nice and neat,
Grid layouts dance in responsive ballet,
Scrollable windows light the customizer's way! 📜✨

Pre-merge checks and finishing touches

❌ Failed checks (1 warning)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. You can run @coderabbitai generate docstrings to improve docstring coverage.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the main change: preventing Edit Tracker Name dialog overflow through the implementation of scrollable sections and layout adjustments.
Linked Issues check ✅ Passed The PR implements all coding requirements from issue #772: adds fixed-height ScrollArea for vertical scrolling, changes layout to CSS grid, truncates long domain names with hover tooltips, and ensures dialog controls remain accessible.
Out of Scope Changes check ✅ Passed All changes are directly related to fixing the overflow issue in the Edit Tracker Name dialog as specified in issue #772; no unrelated modifications are present.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/edit-tracker-dialog-overflow-772

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

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
web/src/pages/Dashboard.tsx (1)

1976-2025: Edit Tracker Name dialog ScrollArea + grid layout look correct; consider tightening truncation behavior

The fixed-height ScrollArea plus min-h-0 flex-1/overflow-hidden wrapper should solve the vertical overflow and keep the footer controls accessible even with many domains. The grid layout (grid-cols-[auto_1fr_auto_auto]) and inclusion/primary logic also look consistent.

One small layout tweak to make truncation more reliable for very long domains in a grid context:

  • Add min-w-0 to the text span so truncate can actually shrink within the 1fr column in all browsers:
-          <span className={`truncate${isPrimary ? " font-medium" : ""}`} title={domain}>{domain}</span>
+          <span
+            className={`truncate min-w-0${isPrimary ? " font-medium" : ""}`}
+            title={domain}
+          >
+            {domain}
+          </span>

This helps avoid horizontal overflow when domains are extremely long or the dialog is narrow.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 2fad4e8 and b3111ec.

📒 Files selected for processing (1)
  • web/src/pages/Dashboard.tsx (4 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: s0up4200
Repo: autobrr/qui PR: 637
File: web/src/pages/Dashboard.tsx:805-831
Timestamp: 2025-11-25T11:39:54.748Z
Learning: In web/src/pages/Dashboard.tsx, the TrackerIconImage component intentionally receives displayDomain (incognito-mapped name) instead of the real domain in incognito mode. This causes icon lookups to fail and show only fallback letters, which is desired behavior for privacy - hiding both tracker names and icons when incognito mode is enabled.
📚 Learning: 2025-11-25T11:39:54.748Z
Learnt from: s0up4200
Repo: autobrr/qui PR: 637
File: web/src/pages/Dashboard.tsx:805-831
Timestamp: 2025-11-25T11:39:54.748Z
Learning: In web/src/pages/Dashboard.tsx, the TrackerIconImage component intentionally receives displayDomain (incognito-mapped name) instead of the real domain in incognito mode. This causes icon lookups to fail and show only fallback letters, which is desired behavior for privacy - hiding both tracker names and icons when incognito mode is enabled.

Applied to files:

  • web/src/pages/Dashboard.tsx
🧬 Code graph analysis (1)
web/src/pages/Dashboard.tsx (3)
web/src/components/ui/label.tsx (1)
  • Label (29-29)
web/src/components/ui/scroll-area.tsx (1)
  • ScrollArea (61-61)
web/src/components/ui/badge.tsx (1)
  • Badge (51-51)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Run tests

@s0up4200 s0up4200 merged commit 13b40b5 into main Dec 15, 2025
12 checks passed
@s0up4200 s0up4200 deleted the fix/edit-tracker-dialog-overflow-772 branch December 15, 2025 21:11
alexlebens pushed a commit to alexlebens/infrastructure that referenced this pull request Dec 20, 2025
This PR contains the following updates:

| Package | Update | Change |
|---|---|---|
| [ghcr.io/autobrr/qui](https://github.com/autobrr/qui) | minor | `v1.10.0` -> `v1.11.0` |

---

### Release Notes

<details>
<summary>autobrr/qui (ghcr.io/autobrr/qui)</summary>

### [`v1.11.0`](https://github.com/autobrr/qui/releases/tag/v1.11.0)

[Compare Source](autobrr/qui@v1.10.0...v1.11.0)

#### Changelog

##### New Features

- [`6e65de4`](autobrr/qui@6e65de4): feat(torrents): add "não registrado" to unregistered status ([#&#8203;794](autobrr/qui#794)) ([@&#8203;fabricionaweb](https://github.com/fabricionaweb))
- [`ac5f8f3`](autobrr/qui@ac5f8f3): feat(torrents): add web seeds table ([#&#8203;808](autobrr/qui#808)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`24559c9`](autobrr/qui@24559c9): feat(web): add Size default sort option to Tracker Breakdown table settings ([#&#8203;786](autobrr/qui#786)) ([@&#8203;thesecretlifeofabunny](https://github.com/thesecretlifeofabunny))

##### Bug Fixes

- [`69ed1a3`](autobrr/qui@69ed1a3): fix(api): respect baseURL for path autocompletion cap ([#&#8203;798](autobrr/qui#798)) ([@&#8203;Ryu481](https://github.com/Ryu481))
- [`0a721d0`](autobrr/qui@0a721d0): fix(crossseed): add verification and retry for async file renames ([#&#8203;789](autobrr/qui#789)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`e9fcbda`](autobrr/qui@e9fcbda): fix(crossseed): pass source filters through to FindCandidates ([#&#8203;802](autobrr/qui#802)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`b4f1ffa`](autobrr/qui@b4f1ffa): fix(crossseed): require strict HDR and Collection matching ([#&#8203;799](autobrr/qui#799)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`4f3365b`](autobrr/qui@4f3365b): fix(sync): edited trackers no longer appear under old domain in sidebar ([#&#8203;792](autobrr/qui#792)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`fcb081e`](autobrr/qui@fcb081e): fix(web): move global stats to bottom of torrents page ([#&#8203;800](autobrr/qui#800)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`13b40b5`](autobrr/qui@13b40b5): fix(web): prevent Edit Tracker Name dialog overflow ([#&#8203;797](autobrr/qui#797)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`8e3b352`](autobrr/qui@8e3b352): fix(web): replace completion filter inputs with MultiSelect dropdowns ([#&#8203;791](autobrr/qui#791)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`adfd5bb`](autobrr/qui@adfd5bb): fix(web): restore piece size display in torrent details panel ([#&#8203;790](autobrr/qui#790)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`5d97b49`](autobrr/qui@5d97b49): fix(web): sort trackers by display name in filter sidebar ([#&#8203;810](autobrr/qui#810)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`2fad4e8`](autobrr/qui@2fad4e8): fix(web): use total counts for Seeds/Peers column filtering ([#&#8203;796](autobrr/qui#796)) ([@&#8203;s0up4200](https://github.com/s0up4200))

##### Other Changes

- [`1bf1b6e`](autobrr/qui@1bf1b6e): chore(crossseed): add debug logging for RSS and webhook source filters ([#&#8203;795](autobrr/qui#795)) ([@&#8203;s0up4200](https://github.com/s0up4200))
- [`95e4bc0`](autobrr/qui@95e4bc0): chore(deps): bump github.com/expr-lang/expr from 1.17.6 to 1.17.7 ([#&#8203;809](autobrr/qui#809)) ([@&#8203;dependabot](https://github.com/dependabot)\[bot])

**Full Changelog**: <autobrr/qui@v1.10.0...v1.11.0>

#### Docker images

- `docker pull ghcr.io/autobrr/qui:v1.11.0`
- `docker pull ghcr.io/autobrr/qui:latest`

#### What to do next?

- Join our [Discord server](https://discord.autobrr.com/qui)

Thank you for using qui!

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi4zOS4xIiwidXBkYXRlZEluVmVyIjoiNDIuMzkuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOlsiaW1hZ2UiXX0=-->

Reviewed-on: https://gitea.alexlebens.dev/alexlebens/infrastructure/pulls/2734
Co-authored-by: Renovate Bot <renovate-bot@alexlebens.net>
Co-committed-by: Renovate Bot <renovate-bot@alexlebens.net>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Long tracker customizations overflow the screen and can't be edited

1 participant