feat: tablets sort and grid view

Stacked on !3 (which is itself stacked on !1). Built on top of the Tablets feature branch and targeting it, so this diff shows only the sort/grid changes. It auto-cleans as !1!3 merge

Summary

adds list controls to the Tablets screen: a sort menu and a list/grid view toggle, with a responsive grid that adapts to screen size

What's included

  • Sort menu - a header icon opens a menu with four options (A–Z, Z–A, Newest first, Oldest first), sorting runs on a copied array (never mutates the cache) and is memoized. The active option shows a checkmark.
  • View toggle - a header icon switches between the existing list rows and a card grid.
  • Responsive grid - column count is derived from the current window width (Math.floor(width / 200), min 2), so phones show 2 columns, tablets more, and it recomputes on rotation. FlashList is re-keyed on column change (required, since numColumns can't change live).
  • Flexible card width - TabletCard now fills its container; the home strip wraps it in a fixed-width View (a horizontal list has no width to fill), and the grid lets it fill each column with padding for gaps.

Notes

  • No new dependencies.
  • Sorting/gridding operate entirely on the already-cached feed - no extra network calls.

Videos

Merge request reports

Loading