Skip to content

feat(ui): sidebar rework + ratings & favourites data layer - #50

Open
FivelSystems wants to merge 2 commits into
mainfrom
feature/ui-rework
Open

feat(ui): sidebar rework + ratings & favourites data layer#50
FivelSystems wants to merge 2 commits into
mainfrom
feature/ui-rework

Conversation

@FivelSystems

Copy link
Copy Markdown
Owner

Summary

UI rework of the library sidebar plus the ratings & favourites data layer.

Sidebar redesign

  • Status, Creators, and Categories are now compact overlay dropdowns (each with its own search and a summary of picked values) instead of long lists that pushed the panel around.
  • New filters in the freed space: a star-rating control, an Only favourites toggle, and a dependency-relationship group (Standalone / Removable). Removable is enable-agnostic — a disabled package still exists in the library.
  • "All Packages" became a Clear all action shown only when a filter is active.
  • The library's total package count is centred beneath its name (no longer an inline badge shoving the title off-centre).

Ratings & Favourites (data layer)

  • Rate a package 1–5 stars and mark it a favourite from the right-click menu, with instant visual feedback (the menu owns live state; handlers write explicit target values, optimistic update + rollback on error).
  • Ratings/favourites are keyed by package family (creator.name), so every version shares them, and persist in the local SQLite user_metadata table.
  • Fully wired through the search engine: rating:4, rating:>=3, favorite:true tokens now match live, with autocomplete suggestions (previously these tokens were inert).
  • Backend: SetRating/SetFavorite repo methods, hydration onto packages in GetCachedPackages, exposed via App.SetPackageRating / App.SetPackageFavorite (bindings regenerated).
  • Desktop-only for now — web has no persistence endpoint yet, so the menu row is hidden there rather than showing controls that silently can't save. The mobile/web entry point lands with the upcoming card redesign.

Testing

  • go build ./..., go test ./..., go vet ./...
  • npx tsc --noEmit clean; npx vitest run — all frontend tests pass (new coverage for rating/favourite matching, suggestions, and user_metadata upsert/clamp/case-insensitivity).

Notes

  • Migrations remain append-only; user_metadata was already present.
  • GlobalOverlays.tsx is pre-existing dead code (kept type-correct here); flagged for adopt-or-delete separately.

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