Skip to content

feat: new releases on dashboard, share/terms in More sheet, graded PC fetch#53

Merged
poketonova merged 1 commit into
mainfrom
feat/phase-3-releases-sharing-graded
Jul 18, 2026
Merged

feat: new releases on dashboard, share/terms in More sheet, graded PC fetch#53
poketonova merged 1 commit into
mainfrom
feat/phase-3-releases-sharing-graded

Conversation

@poketonova

Copy link
Copy Markdown
Collaborator

Summary

Phase 3 (final phase) of the bot-PR cleanup: reimplements #49, #35, and #44 from current main, with the fixes flagged during review. Do not merge the original bot branches.

Changes

New Releases on the Dashboard (from #49, with fixes)

  • Shows the 4 newest Pokémon sets (getSets() is newest-first and localStorage-cached — offline-safe).
  • Fix — dead link: the bot PR linked cards to /sets?set=<id>, a query param nothing consumed. Cards now link to /sets/pokemon?set=<id>, and SetsView honors ?set= by opening that set directly on mount (unknown ids no-op).
  • Fix — loading copy: was "Fetching latest prices…" while fetching sets; now "Loading new releases…".
  • Fix — scope label: the feed is Pokémon-only on a multi-TCG dashboard, so the section header carries a small "Pokémon" tag until other games have sets feeds.

Share + Terms in the More sheet (from #35, with copy tweak)

  • "Share Rarebox" via the Web Share API (rendered only when navigator.share exists) and a "Terms & Privacy" link.
  • Copy tweak per Rarebox voice: "TCG Collection Tracker" (not "Portfolio"), and factual offline/privacy-first text instead of "the best way…" marketing.

Graded PriceCharting fetch in AddItemModal (from #44, with dedupe)

  • Fetch a graded market price by query + selected grade, with Apply. Full fetchPrice error mapping (server_down / timeout / no_results / no_graded_data) and the fetched result is invalidated when the grade changes.
  • Fix — dedupe: scoped to Pokémon graded only. Non-Pokémon graded items already get a PriceCharting search + value input from the generic !isPokemon section — the bot PR would have rendered both. The value input is a single always-visible field, editable after Apply (same pattern as sealed).

Verification (per AGENTS.md)

  • eval:harness — ✅ all passed
  • eval:danger — ✅ no danger-zone files touched
  • build — ✅ clean
  • smoke:browser — ✅ all 12 checks (8 desktop + 4 mobile routes)

Worth a manual look: Dashboard New Releases cards → deep-link into a set; Add Item → graded on a Pokémon card → Fetch/Apply; More sheet → Share/Terms on mobile.

🤖 Reimplemented by opencode from reviewed bot PRs

… fetch

- Dashboard: New Releases section (latest 4 Pokémon sets, newest-first
  from the cached getSets feed) with a Pokémon scope label and honest
  loading copy. Cards deep-link to /sets/pokemon?set=<id>, which
  SetsView now honors by opening the set directly — the bot PR linked
  to /sets?set=<id>, a query param nothing consumed (from #49)
- More sheet: Share Rarebox (Web Share API, collector-voice copy) and
  Terms & Privacy link (from #35, with copy tweak)
- AddItemModal: PriceCharting price fetch for graded Pokémon cards,
  with full fetchPrice error mapping and grade-change invalidation.
  Scoped to Pokémon so non-Pokémon graded items keep the existing
  generic section instead of getting duplicate search/value inputs;
  single always-visible value input, editable after Apply (from #44)
@vercel

vercel Bot commented Jul 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
pokemon-collectr Ready Ready Preview, Comment Jul 18, 2026 6:39pm

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.

2 participants