Skip to content

feat(dashboard): inline Quick log form on the dashboard hero#217

Merged
patrickrb merged 1 commit into
mainfrom
feat/dashboard-quick-log
May 18, 2026
Merged

feat(dashboard): inline Quick log form on the dashboard hero#217
patrickrb merged 1 commit into
mainfrom
feat/dashboard-quick-log

Conversation

@patrickrb
Copy link
Copy Markdown
Owner

Summary

  • Replaces the placeholder Quick log card on /dashboard (which just linked to /new-contact) with a real inline form: callsign + debounced QRZ lookup, frequency with auto-band derivation, mode-aware RST defaults, station picker (when multiple configured), and a Save button that posts to /api/contacts.
  • Matches the layout in new-design/dashboard.html. After a save the parent dashboard refetches contacts + stats, the saved callsign clears, and the input refocuses for rapid sequential logging.
  • Drive-by: bumps the README stack blurb to Next.js 16 / React 19 / TS 5.8 and notes the Drizzle Kit + raw-pg runtime split.

Implementation notes

  • New component src/components/QuickLogCard.tsx. Self-contained: owns its own stations fetch, lookup debounce (~350 ms), UTC clock tick, form state, and submit. Accepts an onSaved callback.
  • Submit body uses snake_case (grid_locator, rst_sent, rst_received, station_id) per CLAUDE.md.
  • freqToBand + mode→RST defaults are inlined for now (duplicated from /new-contact). Tiny, can DRY later if a third caller appears.
  • Save button flashes a green "Saved" state for ~1.8s on success.

Test plan

  • Open /dashboard — Quick log card on the right of the hero shows live UTC clock in the chip header.
  • Type a known callsign — name / QTH / grid / country appear in the lookup chip within ~400 ms.
  • Type an unknown callsign — warning row appears, save still works (without lookup-sourced fields).
  • Enter 14.205 in Freq — Band auto-snaps to 20m. Try 7.02040m, 28.50010m.
  • Switch Mode between SSB / CW / FT8 — RST defaults swap to 59 / 599 / -10.
  • Press Save — new QSO appears at the top of the table, Total QSO / Last 30 stat cards bump, callsign field clears + refocuses, button briefly shows "Saved".
  • Account with multiple stations — station picker appears. Account with one station — "Logging as …" footer shows. Account with zero stations — Save is disabled with an "Add a station" hint.
  • npm run lint, npm run typecheck, npm run build clean (verified locally).

🤖 Generated with Claude Code

Replaces the placeholder Quick log card (which only linked to /new-contact)
with a real inline form: callsign with debounced QRZ lookup, frequency
with auto-band derivation, mode-aware RST defaults, station picker when
multiple are configured, and a Save button that posts to /api/contacts.

Matches the new-design/dashboard.html mockup. Saving refreshes the
contacts table and stat cards on the parent page, then refocuses the
callsign input for rapid sequential logging.

Also bumps the README stack blurb to Next.js 16 / React 19 / TS 5.8 and
notes the Drizzle Kit + raw-pg runtime split.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 18, 2026

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

Project Deployment Actions Updated (UTC)
nodelog Ready Ready Preview, Comment May 18, 2026 6:43pm

Request Review

@patrickrb patrickrb merged commit 56c80cd into main May 18, 2026
7 checks passed
@patrickrb patrickrb deleted the feat/dashboard-quick-log branch May 18, 2026 18:55
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