Skip to content

feat: meeting coordination UI — Schedule meeting from connections list#298

Merged
jlunder00 merged 3 commits intomainfrom
feature/meeting-coord-ui
May 6, 2026
Merged

feat: meeting coordination UI — Schedule meeting from connections list#298
jlunder00 merged 3 commits intomainfrom
feature/meeting-coord-ui

Conversation

@jlunder00
Copy link
Copy Markdown
Owner

Summary

  • Adds stores/meetings.ts — Pinia store with requestMeeting, fetchMeetings, cancelMeeting; computed openMeetings and pendingRequestIds; full TDD (13 tests)
  • Adds types/meetings.ts — TypeScript mirrors of backend request/response shapes
  • Adds ScheduleMeetingModal.vue — per-connection modal with duration selector (15/30/60/90 min), pre-populated slot checklist (next 5 weekdays × 9am/1pm/4pm, user-toggleable), optional context note; Escape/backdrop-click/auto-focus keyboard support
  • Extends ConnectionsSection.vue — "Schedule meeting" button per accepted connection, "meeting pending" badge when an open request exists, fetches open meetings on mount and refreshes after submission

Bug discovered and fixed during review

list_connections_for_user returned only UUIDs for connected users — but POST /api/meetings/request resolves targets via get_user_by_username. Without this fix, every "Send request" click would 404. Fix: SQL now JOINs the users table to expose other_username. Connection TypeScript type gains other_username: string. Connection rows now show the human username rather than a truncated UUID.

Test plan

  • Settings → Connections: accepted connections show "Schedule meeting" button
  • Click "Schedule meeting" — modal opens with correct username in title
  • Pre-populated slot checkboxes span next 5 weekdays × 3 daily slots; unchecking reduces count
  • Duration buttons highlight selection; note textarea accepts freeform text
  • Submit with ≥1 slot selected → POST succeeds → modal closes → "meeting pending" badge appears on the connection row
  • Submit with 0 slots → warning message shown, send button remains disabled
  • Escape / backdrop click closes modal without submitting
  • API failure shows inline error inside the modal

Checklist

  • All 545 tests pass
  • tsc --noEmit exits 0 (zero type errors)
  • vite build exits 0
  • pr-review-toolkit:code-reviewer ran — all findings addressed
  • ACCOUNTING.md updated

@jlunder00 jlunder00 merged commit d02fded into main May 6, 2026
7 checks passed
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