Repository navigation
Separate the phone's bottom bar from the desktop sidebar; switched-off sidebar items stay listed - #53
Merged
Merged
Conversation
The phone's bar gets its own synced key, so it no longer has to share actions.order.sidebar with the desktop sidebar. Mirrored in both fake cores. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y13F1MZyepBvGTi1ceeGUc
Saving the bar used to overwrite the synced desktop sidebar order with the phone's two to five places (Library showing up as Albums on desktop). The bar now lives in its own synced setting, shared between phones, and the desktop sidebar is left alone. A bar saved device-locally before this is adopted once when the account has none yet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y13F1MZyepBvGTi1ceeGUc
The choose-and-order lists were built from Query.Actions, which returns only the chosen actions, so switching one off removed it from the list for good. The switched-off rest of each surface's set is now listed after the chosen ones, described by the palette. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y13F1MZyepBvGTi1ceeGUc
…playlist Escape starts the dialog's exit animation; until it unmounts, its "New playlist…" row also matches the Playlists view's New playlist button, so the click raced the animation and failed under strict mode. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Y13F1MZyepBvGTi1ceeGUc
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Two bugs combined to break the desktop sidebar:
actions.order.sidebarsetting, so the desktop sidebar ended up with the phone's two to five places. The phone's Library place has no desktop view of its own and fell back to Albums, so desktop showed a "Library" that opened Albums, and Artists etc. were gone.Query.Actions, which returns only the chosen actions. Switching an item off dropped it from the list, so it could never be switched back on.What
nav.mobileBarfor the phone's bottom bar: ordered place ids,[]means the default. Also added to both fake cores.nav.mobileBarthrough a newSyncedNavBarPrefs.actions.order.sidebar.NavItem.canonicalActionIdexisted only to feed the sidebar order, so it's removed.src/shared/action-orders.ts, which mirrors the core's default lists.Existing accounts
An account whose
actions.order.sidebaralready holds the phone's list keeps it after this. With the desktop fix, the missing places now appear in Settings → Customisation → Sidebar items and can be switched back on.Testing
cargo test -p hocket-core settings: 25 passed.:app:testDebugUnitTest: 129 tests, 0 failures, 13 skipped (the same suites as before).addReorderAndRemovePersistAcrossRecreationnow checks that the bar saves tonav.mobileBar, that the sidebar order stays[], and that a fresh store over the same core restores the bar.aDeviceLocalBarIsAdoptedOnce.chrome.spec.ts, "a sidebar place switched off in Settings stays listed and can be switched back on": it passes, and it fails without the fix.🤖 Generated with Claude Code
https://claude.ai/code/session_01Y13F1MZyepBvGTi1ceeGUc