fix(web): move instance status bar back to bottom of screen - #2024
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (1)
WalkthroughAdds a DOM target and layout tweaks in Torrents.tsx, and updates TorrentTableOptimized.tsx to detect that target and render the status bar via React portal when available, falling back to inline rendering. ChangesStatus Bar Portal Rendering
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
Suggested labels
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
…arkup Re-indent the status bar JSX that was wrapped in the new portal IIFE without re-indentation (242 @stylistic/indent errors -> 0). Switch the container lookup to useLayoutEffect so the bar no longer paints one frame in its old inline position before adopting the portal. Drop the unreachable border-b/w-full portal-only classes and the dead mobile-branch portal container that never receives content.
…#160) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/autobrr/qui](https://github.com/autobrr/qui) | minor | `v1.20.0` → `v1.21.0` | --- >⚠️ **Warning** > > Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/7) for more information. --- ### Release Notes <details> <summary>autobrr/qui (ghcr.io/autobrr/qui)</summary> ### [`v1.21.0`](https://github.com/autobrr/qui/releases/tag/v1.21.0) [Compare Source](autobrr/qui@v1.20.0...v1.21.0) ##### Changelog ##### New Features - [`51b29a1`](autobrr/qui@51b29a1): feat(api): add GET /api/version reporting the running version ([#​2060](autobrr/qui#2060)) ([@​s0up4200](https://github.com/s0up4200)) - [`98348f1`](autobrr/qui@98348f1): feat(automations): add RLS\_YEAR release-year condition ([#​2003](autobrr/qui#2003)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`58cc7cb`](autobrr/qui@58cc7cb): feat(automations): add tracker status and message conditions ([#​2006](autobrr/qui#2006)) ([@​luckylittle](https://github.com/luckylittle)) - [`2176a92`](autobrr/qui@2176a92): feat(automations): list configured indexer trackers in workflow selector ([#​2005](autobrr/qui#2005)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`2de926e`](autobrr/qui@2de926e): feat(i18n): add Italian (it) translation ([#​2011](autobrr/qui#2011)) ([@​s0up4200](https://github.com/s0up4200)) - [`7b66655`](autobrr/qui@7b66655): feat(i18n): add Korean (ko) translation ([#​2042](autobrr/qui#2042)) ([@​jussaw](https://github.com/jussaw)) - [`2c06a3d`](autobrr/qui@2c06a3d): feat(i18n): add Ukrainian (uk) translation ([#​2032](autobrr/qui#2032)) ([@​rodion981](https://github.com/rodion981)) - [`ef8da0b`](autobrr/qui@ef8da0b): feat(sse): keep cached torrents with a staleness badge when qBittorrent is slow ([#​2057](autobrr/qui#2057)) ([@​s0up4200](https://github.com/s0up4200)) - [`38ebb6e`](autobrr/qui@38ebb6e): feat(web): add file priority controls to torrent file views ([#​2062](autobrr/qui#2062)) ([@​jussaw](https://github.com/jussaw)) ##### Bug Fixes - [`12ac536`](autobrr/qui@12ac536): fix(ci): skip release binary build on main pushes ([#​2008](autobrr/qui#2008)) ([@​s0up4200](https://github.com/s0up4200)) - [`57210a3`](autobrr/qui@57210a3): fix(crossseed): drop resolution token from TV search queries ([#​2017](autobrr/qui#2017)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`791bc7d`](autobrr/qui@791bc7d): fix(crossseed): inject rootless single-file adds into matched folder ([#​2029](autobrr/qui#2029)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`3da437f`](autobrr/qui@3da437f): fix(crossseed): re-query indexers with no usable hit in the alternate connector pass ([#​2002](autobrr/qui#2002)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`8e8b6d9`](autobrr/qui@8e8b6d9): fix(database): prevent int4 sequence exhaustion in Postgres string interning ([#​2015](autobrr/qui#2015)) ([@​s0up4200](https://github.com/s0up4200)) - [`c7e08b9`](autobrr/qui@c7e08b9): fix(db): index string\_pool FK columns so GC stops timing out ([#​2051](autobrr/qui#2051)) ([@​s0up4200](https://github.com/s0up4200)) - [`2553f75`](autobrr/qui@2553f75): fix(docs): use relative file paths for markdown links ([#​2013](autobrr/qui#2013)) ([@​nasenov](https://github.com/nasenov)) - [`8a9c2fc`](autobrr/qui@8a9c2fc): fix(i18n): improve French translation, fix hardcoded UI statuses, and update agent rules ([#​2014](autobrr/qui#2014)) ([@​OlziYT](https://github.com/OlziYT)) - [`190d936`](autobrr/qui@190d936): fix(jackett): decouple cache persistence from SkipHistory ([#​2056](autobrr/qui#2056)) ([@​jussaw](https://github.com/jussaw)) - [`91ad7e4`](autobrr/qui@91ad7e4): fix(pprof): bind to configurable loopback address instead of :6060 ([#​2044](autobrr/qui#2044)) ([@​s0up4200](https://github.com/s0up4200)) - [`10e2d02`](autobrr/qui@10e2d02): fix(qbittorrent): serve stale app info/preferences when refresh fails ([#​2054](autobrr/qui#2054)) ([@​s0up4200](https://github.com/s0up4200)) - [`6d3b04c`](autobrr/qui@6d3b04c): fix(sse): resolve sync-error staleness stamp off the sync-loop callback ([#​2065](autobrr/qui#2065)) ([@​s0up4200](https://github.com/s0up4200)) - [`677e8f4`](autobrr/qui@677e8f4): fix(sse): send torrent page deltas instead of full snapshots ([#​2047](autobrr/qui#2047)) ([@​s0up4200](https://github.com/s0up4200)) - [`a4d252b`](autobrr/qui@a4d252b): fix(sse): size full-sync timeout to prevent permanent disconnect on large instances ([#​2037](autobrr/qui#2037)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`4f375c6`](autobrr/qui@4f375c6): fix(torrents): route unified view exports to the owning instance ([#​2018](autobrr/qui#2018)) ([@​s0up4200](https://github.com/s0up4200)) - [`d49e168`](autobrr/qui@d49e168): fix(web): move instance status bar back to bottom of screen ([#​2024](autobrr/qui#2024)) ([@​OlziYT](https://github.com/OlziYT)) - [`a69ae69`](autobrr/qui@a69ae69): fix(web): prevent framer-motion tab indicator from triggering layout shifts ([#​2025](autobrr/qui#2025)) ([@​OlziYT](https://github.com/OlziYT)) ##### Other Changes - [`860b5bb`](autobrr/qui@860b5bb): chore(deps): bump anthropics/claude-code-action from 1.0.140 to 1.0.148 in the github group ([#​2045](autobrr/qui#2045)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`0b23a7d`](autobrr/qui@0b23a7d): chore(deps): bump the github group with 2 updates ([#​2031](autobrr/qui#2031)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`1fea36b`](autobrr/qui@1fea36b): docs: document frontend testing conventions ([#​1984](autobrr/qui#1984)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`f3443ec`](autobrr/qui@f3443ec): docs: promote multi-language support ([#​2009](autobrr/qui#2009)) ([@​s0up4200](https://github.com/s0up4200)) - [`df88e63`](autobrr/qui@df88e63): test(web): add coverage for hooks and lib/api.ts contract layer ([#​1931](autobrr/qui#1931)) ([#​1998](autobrr/qui#1998)) ([@​nitrobass24](https://github.com/nitrobass24)) **Full Changelog**: <autobrr/qui@v1.20.0...v1.21.0> ##### Docker images - `docker pull ghcr.io/autobrr/qui:v1.21.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**: (in timezone Europe/Warsaw) - 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDMuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=--> Reviewed-on: https://git.ajgon.casa/deedee/mark13/pulls/160
… (#200) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/autobrr/qui](https://github.com/autobrr/qui) | minor | `v1.20.0` → `v1.22.0` | --- ### Release Notes <details> <summary>autobrr/qui (ghcr.io/autobrr/qui)</summary> ### [`v1.22.0`](https://github.com/autobrr/qui/releases/tag/v1.22.0) [Compare Source](autobrr/qui@v1.21.0...v1.22.0) ##### Changelog ##### New Features - [`5b9326e`](autobrr/qui@5b9326e): feat(web): add copy path option to content tab context menu ([#​933](autobrr/qui#933)) ([@​lenisko](https://github.com/lenisko)) - [`3a4383d`](autobrr/qui@3a4383d): feat(web): add kanagawa themes ([#​2069](autobrr/qui#2069)) ([@​notmarek](https://github.com/notmarek)) - [`db77a17`](autobrr/qui@db77a17): feat(web): shift+click range select in torrent content tab ([#​2081](autobrr/qui#2081)) ([@​jussaw](https://github.com/jussaw)) ##### Bug Fixes - [`b563d4b`](autobrr/qui@b563d4b): fix(sync): keep SSE aggregates fresh without tracker hydration ([#​2072](autobrr/qui#2072)) ([@​Audionut](https://github.com/Audionut)) ##### Other Changes - [`d428313`](autobrr/qui@d428313): chore(deps): bump the github group with 5 updates ([#​2073](autobrr/qui#2073)) ([@​dependabot](https://github.com/dependabot)\[bot]) **Full Changelog**: <autobrr/qui@v1.21.0...v1.22.0> ##### Docker images - `docker pull ghcr.io/autobrr/qui:v1.22.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! ### [`v1.21.0`](https://github.com/autobrr/qui/releases/tag/v1.21.0) [Compare Source](autobrr/qui@v1.20.0...v1.21.0) ##### Changelog ##### New Features - [`51b29a1`](autobrr/qui@51b29a1): feat(api): add GET /api/version reporting the running version ([#​2060](autobrr/qui#2060)) ([@​s0up4200](https://github.com/s0up4200)) - [`98348f1`](autobrr/qui@98348f1): feat(automations): add RLS\_YEAR release-year condition ([#​2003](autobrr/qui#2003)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`58cc7cb`](autobrr/qui@58cc7cb): feat(automations): add tracker status and message conditions ([#​2006](autobrr/qui#2006)) ([@​luckylittle](https://github.com/luckylittle)) - [`2176a92`](autobrr/qui@2176a92): feat(automations): list configured indexer trackers in workflow selector ([#​2005](autobrr/qui#2005)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`2de926e`](autobrr/qui@2de926e): feat(i18n): add Italian (it) translation ([#​2011](autobrr/qui#2011)) ([@​s0up4200](https://github.com/s0up4200)) - [`7b66655`](autobrr/qui@7b66655): feat(i18n): add Korean (ko) translation ([#​2042](autobrr/qui#2042)) ([@​jussaw](https://github.com/jussaw)) - [`2c06a3d`](autobrr/qui@2c06a3d): feat(i18n): add Ukrainian (uk) translation ([#​2032](autobrr/qui#2032)) ([@​rodion981](https://github.com/rodion981)) - [`ef8da0b`](autobrr/qui@ef8da0b): feat(sse): keep cached torrents with a staleness badge when qBittorrent is slow ([#​2057](autobrr/qui#2057)) ([@​s0up4200](https://github.com/s0up4200)) - [`38ebb6e`](autobrr/qui@38ebb6e): feat(web): add file priority controls to torrent file views ([#​2062](autobrr/qui#2062)) ([@​jussaw](https://github.com/jussaw)) ##### Bug Fixes - [`12ac536`](autobrr/qui@12ac536): fix(ci): skip release binary build on main pushes ([#​2008](autobrr/qui#2008)) ([@​s0up4200](https://github.com/s0up4200)) - [`57210a3`](autobrr/qui@57210a3): fix(crossseed): drop resolution token from TV search queries ([#​2017](autobrr/qui#2017)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`791bc7d`](autobrr/qui@791bc7d): fix(crossseed): inject rootless single-file adds into matched folder ([#​2029](autobrr/qui#2029)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`3da437f`](autobrr/qui@3da437f): fix(crossseed): re-query indexers with no usable hit in the alternate connector pass ([#​2002](autobrr/qui#2002)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`8e8b6d9`](autobrr/qui@8e8b6d9): fix(database): prevent int4 sequence exhaustion in Postgres string interning ([#​2015](autobrr/qui#2015)) ([@​s0up4200](https://github.com/s0up4200)) - [`c7e08b9`](autobrr/qui@c7e08b9): fix(db): index string\_pool FK columns so GC stops timing out ([#​2051](autobrr/qui#2051)) ([@​s0up4200](https://github.com/s0up4200)) - [`2553f75`](autobrr/qui@2553f75): fix(docs): use relative file paths for markdown links ([#​2013](autobrr/qui#2013)) ([@​nasenov](https://github.com/nasenov)) - [`8a9c2fc`](autobrr/qui@8a9c2fc): fix(i18n): improve French translation, fix hardcoded UI statuses, and update agent rules ([#​2014](autobrr/qui#2014)) ([@​OlziYT](https://github.com/OlziYT)) - [`190d936`](autobrr/qui@190d936): fix(jackett): decouple cache persistence from SkipHistory ([#​2056](autobrr/qui#2056)) ([@​jussaw](https://github.com/jussaw)) - [`91ad7e4`](autobrr/qui@91ad7e4): fix(pprof): bind to configurable loopback address instead of :6060 ([#​2044](autobrr/qui#2044)) ([@​s0up4200](https://github.com/s0up4200)) - [`10e2d02`](autobrr/qui@10e2d02): fix(qbittorrent): serve stale app info/preferences when refresh fails ([#​2054](autobrr/qui#2054)) ([@​s0up4200](https://github.com/s0up4200)) - [`6d3b04c`](autobrr/qui@6d3b04c): fix(sse): resolve sync-error staleness stamp off the sync-loop callback ([#​2065](autobrr/qui#2065)) ([@​s0up4200](https://github.com/s0up4200)) - [`677e8f4`](autobrr/qui@677e8f4): fix(sse): send torrent page deltas instead of full snapshots ([#​2047](autobrr/qui#2047)) ([@​s0up4200](https://github.com/s0up4200)) - [`a4d252b`](autobrr/qui@a4d252b): fix(sse): size full-sync timeout to prevent permanent disconnect on large instances ([#​2037](autobrr/qui#2037)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`4f375c6`](autobrr/qui@4f375c6): fix(torrents): route unified view exports to the owning instance ([#​2018](autobrr/qui#2018)) ([@​s0up4200](https://github.com/s0up4200)) - [`d49e168`](autobrr/qui@d49e168): fix(web): move instance status bar back to bottom of screen ([#​2024](autobrr/qui#2024)) ([@​OlziYT](https://github.com/OlziYT)) - [`a69ae69`](autobrr/qui@a69ae69): fix(web): prevent framer-motion tab indicator from triggering layout shifts ([#​2025](autobrr/qui#2025)) ([@​OlziYT](https://github.com/OlziYT)) ##### Other Changes - [`860b5bb`](autobrr/qui@860b5bb): chore(deps): bump anthropics/claude-code-action from 1.0.140 to 1.0.148 in the github group ([#​2045](autobrr/qui#2045)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`0b23a7d`](autobrr/qui@0b23a7d): chore(deps): bump the github group with 2 updates ([#​2031](autobrr/qui#2031)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`1fea36b`](autobrr/qui@1fea36b): docs: document frontend testing conventions ([#​1984](autobrr/qui#1984)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`f3443ec`](autobrr/qui@f3443ec): docs: promote multi-language support ([#​2009](autobrr/qui#2009)) ([@​s0up4200](https://github.com/s0up4200)) - [`df88e63`](autobrr/qui@df88e63): test(web): add coverage for hooks and lib/api.ts contract layer ([#​1931](autobrr/qui#1931)) ([#​1998](autobrr/qui#1998)) ([@​nitrobass24](https://github.com/nitrobass24)) **Full Changelog**: <autobrr/qui@v1.20.0...v1.21.0> ##### Docker images - `docker pull ghcr.io/autobrr/qui:v1.21.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**: (in timezone Europe/London) - 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDIuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI0Mi4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZS9jb250YWluZXIiLCJ0eXBlL21pbm9yIl19--> Reviewed-on: https://forgejo.hayden.moe/hayden/phoebe/pulls/200
…#160) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/autobrr/qui](https://github.com/autobrr/qui) | minor | `v1.20.0` → `v1.21.0` | --- >⚠️ **Warning** > > Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/7) for more information. --- ### Release Notes <details> <summary>autobrr/qui (ghcr.io/autobrr/qui)</summary> ### [`v1.21.0`](https://github.com/autobrr/qui/releases/tag/v1.21.0) [Compare Source](autobrr/qui@v1.20.0...v1.21.0) ##### Changelog ##### New Features - [`51b29a1`](autobrr/qui@51b29a1): feat(api): add GET /api/version reporting the running version ([#​2060](autobrr/qui#2060)) ([@​s0up4200](https://github.com/s0up4200)) - [`98348f1`](autobrr/qui@98348f1): feat(automations): add RLS\_YEAR release-year condition ([#​2003](autobrr/qui#2003)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`58cc7cb`](autobrr/qui@58cc7cb): feat(automations): add tracker status and message conditions ([#​2006](autobrr/qui#2006)) ([@​luckylittle](https://github.com/luckylittle)) - [`2176a92`](autobrr/qui@2176a92): feat(automations): list configured indexer trackers in workflow selector ([#​2005](autobrr/qui#2005)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`2de926e`](autobrr/qui@2de926e): feat(i18n): add Italian (it) translation ([#​2011](autobrr/qui#2011)) ([@​s0up4200](https://github.com/s0up4200)) - [`7b66655`](autobrr/qui@7b66655): feat(i18n): add Korean (ko) translation ([#​2042](autobrr/qui#2042)) ([@​jussaw](https://github.com/jussaw)) - [`2c06a3d`](autobrr/qui@2c06a3d): feat(i18n): add Ukrainian (uk) translation ([#​2032](autobrr/qui#2032)) ([@​rodion981](https://github.com/rodion981)) - [`ef8da0b`](autobrr/qui@ef8da0b): feat(sse): keep cached torrents with a staleness badge when qBittorrent is slow ([#​2057](autobrr/qui#2057)) ([@​s0up4200](https://github.com/s0up4200)) - [`38ebb6e`](autobrr/qui@38ebb6e): feat(web): add file priority controls to torrent file views ([#​2062](autobrr/qui#2062)) ([@​jussaw](https://github.com/jussaw)) ##### Bug Fixes - [`12ac536`](autobrr/qui@12ac536): fix(ci): skip release binary build on main pushes ([#​2008](autobrr/qui#2008)) ([@​s0up4200](https://github.com/s0up4200)) - [`57210a3`](autobrr/qui@57210a3): fix(crossseed): drop resolution token from TV search queries ([#​2017](autobrr/qui#2017)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`791bc7d`](autobrr/qui@791bc7d): fix(crossseed): inject rootless single-file adds into matched folder ([#​2029](autobrr/qui#2029)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`3da437f`](autobrr/qui@3da437f): fix(crossseed): re-query indexers with no usable hit in the alternate connector pass ([#​2002](autobrr/qui#2002)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`8e8b6d9`](autobrr/qui@8e8b6d9): fix(database): prevent int4 sequence exhaustion in Postgres string interning ([#​2015](autobrr/qui#2015)) ([@​s0up4200](https://github.com/s0up4200)) - [`c7e08b9`](autobrr/qui@c7e08b9): fix(db): index string\_pool FK columns so GC stops timing out ([#​2051](autobrr/qui#2051)) ([@​s0up4200](https://github.com/s0up4200)) - [`2553f75`](autobrr/qui@2553f75): fix(docs): use relative file paths for markdown links ([#​2013](autobrr/qui#2013)) ([@​nasenov](https://github.com/nasenov)) - [`8a9c2fc`](autobrr/qui@8a9c2fc): fix(i18n): improve French translation, fix hardcoded UI statuses, and update agent rules ([#​2014](autobrr/qui#2014)) ([@​OlziYT](https://github.com/OlziYT)) - [`190d936`](autobrr/qui@190d936): fix(jackett): decouple cache persistence from SkipHistory ([#​2056](autobrr/qui#2056)) ([@​jussaw](https://github.com/jussaw)) - [`91ad7e4`](autobrr/qui@91ad7e4): fix(pprof): bind to configurable loopback address instead of :6060 ([#​2044](autobrr/qui#2044)) ([@​s0up4200](https://github.com/s0up4200)) - [`10e2d02`](autobrr/qui@10e2d02): fix(qbittorrent): serve stale app info/preferences when refresh fails ([#​2054](autobrr/qui#2054)) ([@​s0up4200](https://github.com/s0up4200)) - [`6d3b04c`](autobrr/qui@6d3b04c): fix(sse): resolve sync-error staleness stamp off the sync-loop callback ([#​2065](autobrr/qui#2065)) ([@​s0up4200](https://github.com/s0up4200)) - [`677e8f4`](autobrr/qui@677e8f4): fix(sse): send torrent page deltas instead of full snapshots ([#​2047](autobrr/qui#2047)) ([@​s0up4200](https://github.com/s0up4200)) - [`a4d252b`](autobrr/qui@a4d252b): fix(sse): size full-sync timeout to prevent permanent disconnect on large instances ([#​2037](autobrr/qui#2037)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`4f375c6`](autobrr/qui@4f375c6): fix(torrents): route unified view exports to the owning instance ([#​2018](autobrr/qui#2018)) ([@​s0up4200](https://github.com/s0up4200)) - [`d49e168`](autobrr/qui@d49e168): fix(web): move instance status bar back to bottom of screen ([#​2024](autobrr/qui#2024)) ([@​OlziYT](https://github.com/OlziYT)) - [`a69ae69`](autobrr/qui@a69ae69): fix(web): prevent framer-motion tab indicator from triggering layout shifts ([#​2025](autobrr/qui#2025)) ([@​OlziYT](https://github.com/OlziYT)) ##### Other Changes - [`860b5bb`](autobrr/qui@860b5bb): chore(deps): bump anthropics/claude-code-action from 1.0.140 to 1.0.148 in the github group ([#​2045](autobrr/qui#2045)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`0b23a7d`](autobrr/qui@0b23a7d): chore(deps): bump the github group with 2 updates ([#​2031](autobrr/qui#2031)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`1fea36b`](autobrr/qui@1fea36b): docs: document frontend testing conventions ([#​1984](autobrr/qui#1984)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`f3443ec`](autobrr/qui@f3443ec): docs: promote multi-language support ([#​2009](autobrr/qui#2009)) ([@​s0up4200](https://github.com/s0up4200)) - [`df88e63`](autobrr/qui@df88e63): test(web): add coverage for hooks and lib/api.ts contract layer ([#​1931](autobrr/qui#1931)) ([#​1998](autobrr/qui#1998)) ([@​nitrobass24](https://github.com/nitrobass24)) **Full Changelog**: <autobrr/qui@v1.20.0...v1.21.0> ##### Docker images - `docker pull ghcr.io/autobrr/qui:v1.21.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**: (in timezone Europe/Warsaw) - 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDMuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=--> Reviewed-on: https://git.ajgon.casa/deedee/mark13/pulls/160
…#160) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/autobrr/qui](https://github.com/autobrr/qui) | minor | `v1.20.0` → `v1.21.0` | --- >⚠️ **Warning** > > Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/7) for more information. --- ### Release Notes <details> <summary>autobrr/qui (ghcr.io/autobrr/qui)</summary> ### [`v1.21.0`](https://github.com/autobrr/qui/releases/tag/v1.21.0) [Compare Source](autobrr/qui@v1.20.0...v1.21.0) ##### Changelog ##### New Features - [`51b29a1`](autobrr/qui@51b29a1): feat(api): add GET /api/version reporting the running version ([#​2060](autobrr/qui#2060)) ([@​s0up4200](https://github.com/s0up4200)) - [`98348f1`](autobrr/qui@98348f1): feat(automations): add RLS\_YEAR release-year condition ([#​2003](autobrr/qui#2003)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`58cc7cb`](autobrr/qui@58cc7cb): feat(automations): add tracker status and message conditions ([#​2006](autobrr/qui#2006)) ([@​luckylittle](https://github.com/luckylittle)) - [`2176a92`](autobrr/qui@2176a92): feat(automations): list configured indexer trackers in workflow selector ([#​2005](autobrr/qui#2005)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`2de926e`](autobrr/qui@2de926e): feat(i18n): add Italian (it) translation ([#​2011](autobrr/qui#2011)) ([@​s0up4200](https://github.com/s0up4200)) - [`7b66655`](autobrr/qui@7b66655): feat(i18n): add Korean (ko) translation ([#​2042](autobrr/qui#2042)) ([@​jussaw](https://github.com/jussaw)) - [`2c06a3d`](autobrr/qui@2c06a3d): feat(i18n): add Ukrainian (uk) translation ([#​2032](autobrr/qui#2032)) ([@​rodion981](https://github.com/rodion981)) - [`ef8da0b`](autobrr/qui@ef8da0b): feat(sse): keep cached torrents with a staleness badge when qBittorrent is slow ([#​2057](autobrr/qui#2057)) ([@​s0up4200](https://github.com/s0up4200)) - [`38ebb6e`](autobrr/qui@38ebb6e): feat(web): add file priority controls to torrent file views ([#​2062](autobrr/qui#2062)) ([@​jussaw](https://github.com/jussaw)) ##### Bug Fixes - [`12ac536`](autobrr/qui@12ac536): fix(ci): skip release binary build on main pushes ([#​2008](autobrr/qui#2008)) ([@​s0up4200](https://github.com/s0up4200)) - [`57210a3`](autobrr/qui@57210a3): fix(crossseed): drop resolution token from TV search queries ([#​2017](autobrr/qui#2017)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`791bc7d`](autobrr/qui@791bc7d): fix(crossseed): inject rootless single-file adds into matched folder ([#​2029](autobrr/qui#2029)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`3da437f`](autobrr/qui@3da437f): fix(crossseed): re-query indexers with no usable hit in the alternate connector pass ([#​2002](autobrr/qui#2002)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`8e8b6d9`](autobrr/qui@8e8b6d9): fix(database): prevent int4 sequence exhaustion in Postgres string interning ([#​2015](autobrr/qui#2015)) ([@​s0up4200](https://github.com/s0up4200)) - [`c7e08b9`](autobrr/qui@c7e08b9): fix(db): index string\_pool FK columns so GC stops timing out ([#​2051](autobrr/qui#2051)) ([@​s0up4200](https://github.com/s0up4200)) - [`2553f75`](autobrr/qui@2553f75): fix(docs): use relative file paths for markdown links ([#​2013](autobrr/qui#2013)) ([@​nasenov](https://github.com/nasenov)) - [`8a9c2fc`](autobrr/qui@8a9c2fc): fix(i18n): improve French translation, fix hardcoded UI statuses, and update agent rules ([#​2014](autobrr/qui#2014)) ([@​OlziYT](https://github.com/OlziYT)) - [`190d936`](autobrr/qui@190d936): fix(jackett): decouple cache persistence from SkipHistory ([#​2056](autobrr/qui#2056)) ([@​jussaw](https://github.com/jussaw)) - [`91ad7e4`](autobrr/qui@91ad7e4): fix(pprof): bind to configurable loopback address instead of :6060 ([#​2044](autobrr/qui#2044)) ([@​s0up4200](https://github.com/s0up4200)) - [`10e2d02`](autobrr/qui@10e2d02): fix(qbittorrent): serve stale app info/preferences when refresh fails ([#​2054](autobrr/qui#2054)) ([@​s0up4200](https://github.com/s0up4200)) - [`6d3b04c`](autobrr/qui@6d3b04c): fix(sse): resolve sync-error staleness stamp off the sync-loop callback ([#​2065](autobrr/qui#2065)) ([@​s0up4200](https://github.com/s0up4200)) - [`677e8f4`](autobrr/qui@677e8f4): fix(sse): send torrent page deltas instead of full snapshots ([#​2047](autobrr/qui#2047)) ([@​s0up4200](https://github.com/s0up4200)) - [`a4d252b`](autobrr/qui@a4d252b): fix(sse): size full-sync timeout to prevent permanent disconnect on large instances ([#​2037](autobrr/qui#2037)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`4f375c6`](autobrr/qui@4f375c6): fix(torrents): route unified view exports to the owning instance ([#​2018](autobrr/qui#2018)) ([@​s0up4200](https://github.com/s0up4200)) - [`d49e168`](autobrr/qui@d49e168): fix(web): move instance status bar back to bottom of screen ([#​2024](autobrr/qui#2024)) ([@​OlziYT](https://github.com/OlziYT)) - [`a69ae69`](autobrr/qui@a69ae69): fix(web): prevent framer-motion tab indicator from triggering layout shifts ([#​2025](autobrr/qui#2025)) ([@​OlziYT](https://github.com/OlziYT)) ##### Other Changes - [`860b5bb`](autobrr/qui@860b5bb): chore(deps): bump anthropics/claude-code-action from 1.0.140 to 1.0.148 in the github group ([#​2045](autobrr/qui#2045)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`0b23a7d`](autobrr/qui@0b23a7d): chore(deps): bump the github group with 2 updates ([#​2031](autobrr/qui#2031)) ([@​dependabot](https://github.com/dependabot)\[bot]) - [`1fea36b`](autobrr/qui@1fea36b): docs: document frontend testing conventions ([#​1984](autobrr/qui#1984)) ([@​nitrobass24](https://github.com/nitrobass24)) - [`f3443ec`](autobrr/qui@f3443ec): docs: promote multi-language support ([#​2009](autobrr/qui#2009)) ([@​s0up4200](https://github.com/s0up4200)) - [`df88e63`](autobrr/qui@df88e63): test(web): add coverage for hooks and lib/api.ts contract layer ([#​1931](autobrr/qui#1931)) ([#​1998](autobrr/qui#1998)) ([@​nitrobass24](https://github.com/nitrobass24)) **Full Changelog**: <autobrr/qui@v1.20.0...v1.21.0> ##### Docker images - `docker pull ghcr.io/autobrr/qui:v1.21.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**: (in timezone Europe/Warsaw) - 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 becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about these updates again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4yNDMuMSIsInVwZGF0ZWRJblZlciI6IjQzLjI0My4xIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbInJlbm92YXRlL2NvbnRhaW5lciIsInR5cGUvbWlub3IiXX0=--> Reviewed-on: https://git.ajgon.casa/deedee/mark13/pulls/160
Fixes #2023
Description
This PR addresses an issue where the global instance status bar was moved inside the torrent table area during the SSE migration. Because of this, when a user selects a torrent and the
torrent-detailsResizablePanel opens, the status bar is pushed upwards, sitting uncomfortably between the list and the details panel instead of staying fixed at the bottom.Technical Solution
Instead of heavily refactoring the
TorrentTableOptimizedcomponent to lift dozens of state variables (SSE streams, selected counts, speeds, view modes) up to a parent component or into a massive React Context, this PR uses a React Portal.#qui-status-bar-containerdiv at the very bottom of theTorrents.tsxlayout (outside theResizablePanelGroup).TorrentTableOptimizedcomponent still handles all the complex logic, but it now renders the status bar into the bottom portal.Visual Changes
How to Test
Summary by CodeRabbit