goon/mobile/src/components
goon-foss cb0b843f48 refactor(review): dedup favorites/list visibility + SQL-aggregate count, share mobile isNew
Follow-up cleanup from the ultra-review (behaviour-preserving, verified equivalent):

- scenes.py: extract live_playback_exists / blacklist_clauses / stub_exclusion_clause;
  list_scenes and favorites now share ONE definition of "visible scene" (was a hand-kept
  copy in favorites -> the count-vs-list drift class). Verified identical: helper vs old
  inline both count 1,853,327 scenes.
- favorites.py: replace the two copy-pasted count blocks with one _new_counts(kind=...)
  that counts in SQL (count(*) FILTER over the windowed subquery) instead of streaming up
  to N*200 rows to Python; joins the favorite table for per-row last_seen. Deployed
  _new_counts verified == hand SQL (studios 364). Dropped now-unused imports.
- mobile: extract lib/newScenes.ts (isNewScene / sortNewFirst); SceneTile + Performer/
  StudioScenes use it (was triplicated, already drifted once in the deleted FavoriteSceneRow).
- SceneDetail: fold tube:pornxpph into the phoneResolver map (was a verbatim-duplicated block).
- deep_crawl: persist the cursor after every completed page (was once at run end), so a
  mid-page hard-kill past the soft budget can't lose progress (GOON-V hardening).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 09:41:37 +02:00
..
BugReportFAB.tsx fix(mobile): capture site/origin text params in bug-report auto-context 2026-06-15 09:35:58 +02:00
GoonWordmark.tsx build(apk): 0.2.0 — expo-font native, runtime 1.1, fonts re-enabled 2026-05-31 12:51:32 +02:00
MovieFiltersSheet.tsx feat(mobile): movies — performer filter + 3-column grid 2026-06-21 23:21:22 +02:00
MoviePosterCard.tsx build(apk): 0.2.0 — expo-font native, runtime 1.1, fonts re-enabled 2026-05-31 12:51:32 +02:00
OnboardingModal.tsx fix(mobile): onboarding pager — measure page width so last slide shows "Start browsing" 2026-06-22 10:21:19 +02:00
SceneGridSkeleton.tsx mobile: skeleton grid while scene lists load (perceived perf) 2026-06-02 12:03:33 +02:00
SceneTile.tsx refactor(review): dedup favorites/list visibility + SQL-aggregate count, share mobile isNew 2026-07-02 09:41:37 +02:00
Thumb.tsx fix(mobile): English long-press action labels + clean thumb error placeholder 2026-06-10 10:11:10 +02:00
WhatsNewModal.tsx feat(mobile): first-launch tutorial (pages, features, long-presses, player gestures) 2026-06-22 10:08:56 +02:00