PE-9205: A drive's details beside Your Drives - #2234
vilenarios wants to merge 1 commit into
Conversation
A click on a drive in Your Drives now opens its details on the right, the same way a click on a row in a drive does. A double-click still opens the drive, and clicking a drive still never syncs it. The panel is the explorer's own `DetailsPanel`, not a lookalike: - It takes the drive, its close and its sync as parameters. - Its toolbar is built from the drive it is given, not read off the explorer's state. Your Drives keeps that explorer alive holding whichever drive was last open, so a panel reading it would offer to share and rename the wrong drive. **Drives never synced here.** Reading the drive list stores each drive and a placeholder root folder, and nothing else. For such a drive the Details tab asked for the root folder's revision with `getSingle`. That threw inside a stream listener, where no `onError` hears it, and the panel spun forever. Every More Info on a never-synced drive did this. Now: - `FsEntryUnsyncedDriveInfo` shows what is known: the drive's ID, its dates and its signature type. - Where the size and contents would be, it says the drive has not been synced on this device, and offers Sync Now. The press is the reader's; opening the details syncs nothing. - There is no Download, since none of its files are known. - A load that fails ends on a message, not a spinner. The explorer's own panel for an unsynced drive gets the same fixes, and a close button: its toolbar only drew for a loaded drive, so nothing closed it. **Room for the panel.** It pushes the list narrower, as the explorer's does, while the list can keep its rows as rows: - **Three columns.** Beside the panel the list may drop to name, last synced and size. The two it drops, files and created, are what the panel shows. - **Covering.** Where even three will not fit, the panel covers the right of the list instead. Pushing would turn the rows into cards, which are taller, and every row would move under the pointer between the two clicks of a double-click. `driveDetailsPushList` makes the call, and it is tested at 1920, 1440, 1280, 1200 and 1100 wide. - **Nothing rebuilt.** The list sits at one place in the tree whichever it is, so opening the panel rebuilds no row. The panel follows focus, so Tab moves it from drive to drive. Escape or the X closes it, and the row's highlight goes with it. A click on the row whose details were just closed reopens them, even though that row still had focus. Verification: - 17 new tests: the info cubit against a real database, the panel with a real database, the list beside it, and the push-or-cover decision. - Eight mutations, each breaking one rule, are each caught. - The full suite is 2,204 passing, and `flutter analyze` is clean. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01ShVJiUhdRWk35ZWbP3sZyN
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Advanced Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
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 |
|
Visit the preview URL for this PR (updated for commit 847cad5): https://ardrive-web--pr2234-drive-info-panel-efint1xw.web.app (expires Fri, 25 Sep 2026 15:27:12 GMT) 🔥 via Firebase Hosting GitHub Action 🌎 Sign: a224ebaee2f0939e7665e7630e7d3d6cd7d0f8b0 |
Stacked on #2233. It builds on click-to-highlight, and targets that branch until #2233 merges.
A click on a drive in Your Drives now opens its details on the right, as a click on a row in a drive already does. A double-click still opens the drive, and clicking a drive still never syncs it.
What you see
Sync Now is an explicit press, doing what the drive's own menu does. Opening the details syncs nothing.
Room for it
The panel is the explorer's, at the explorer's width: a quarter of the window, never under 375px.
The list stays at one place in the widget tree in every case, so opening the panel never rebuilds a row, and a double-click survives it.
Fixed on the way, in the explorer too
getSingle, which threw inside a stream listener where noonErrorhears it. It now shows what is known, and a load that fails ends on a message instead of a spinner.Testing
flutter analyzeis clean.Please check on the preview
🤖 Generated with Claude Code
https://claude.ai/code/session_01ShVJiUhdRWk35ZWbP3sZyN