feat: scanner integration and trade analyzer#4
Conversation
- CameraViewfinder.vue: device camera access via getUserMedia, animated scan-line overlay with glow effect, file upload fallback for older browsers, flash effect on capture - TradeAnalyzerView.vue: split-screen flex layout for Side A (My Cards) vs Side B (Their Cards), delta/price difference indicator with color coding (green/amber/red), quick-add scan buttons for both sides - Tailwind CSS 3 setup with GitHub-dark theme color tokens (rb-bg, rb-card, rb-accent, etc.) - Accessibility: all buttons 44x44px minimum, aria-labels on every action, prefers-reduced-motion support (static overlay instead of animated scan line) - Router entry at /trade for TradeAnalyzerView - Mock data only — no API calls or Pinia state writes
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Reviewed + built locally. Not mergeable as-is — two blockers, plus the scanner feature needs a coherence decision (details below). Currently CONFLICTING with main. 🔴 Tailwind injected into the shared global stylesheet (HIGH). This PR prepends 🟡 TradeAnalyzerView is a mockup, not functional. On the conflict / "is this a duplicate?": I checked — main does not have a working trade analyzer. Main has an orphaned Recommendation: decide one approach for the scanner feature (this PR's mock+Tailwind direction, or #8's tesseract pipeline direction — not both), then: drop/scope the Tailwind change, implement real recognition instead of random prices, wire the route, and resolve the conflict against current main. Happy to help once the direction is picked. I did NOT close this — it needs your call, not an auto-close. |
This PR merges the
feature/scanner-integration(assembled from UI and OCR service modules) intomain. The integration brings real-time Pokémon TCG card scanning capabilities to the application, specifically enhancing the Trade Analyzer and Collection Management features.Key Changes
ocrWorker.ts) using Tesseract.js for off-main-thread image processing.ImageDataandOffscreenCanvasworker serialization to ensure high-performance, crash-free scanning.CameraViewfinder.vuewith real-time feedback, animated scan lines (respectingprefers-reduced-motion), and fallback file upload support.aria-labelcoverage for all interactive elements (close buttons, capture triggers, navigation).aria-hidden="true"to reduce screen reader noise.Verification