Skip to content

fix(booking): snap concept block start to nearest quarter, keep duration#8

Merged
guuse merged 1 commit into
mainfrom
claude/vibrant-roentgen-1c45fc
Jun 3, 2026
Merged

fix(booking): snap concept block start to nearest quarter, keep duration#8
guuse merged 1 commit into
mainfrom
claude/vibrant-roentgen-1c45fc

Conversation

@guuse

@guuse guuse commented Jun 3, 2026

Copy link
Copy Markdown
Owner

Probleem

Bij blokken die nog niet op een kwartier vallen (concept-blokken én entries die buiten de app geboekt zijn) stonden de VAN en TOT velden altijd op 07:00 – 07:00.

Oorzaak: de VAN/TOT-dropdowns (TimeSelect) bieden alleen kwartier-opties aan (07:00, 07:15, … 20:00). Een ruwe bloktijd als 16:11 matcht geen enkele <option>, en een <select> valt dan stilletjes terug op zijn eerste optie — 07:00.

Fix

In useBooking — het ene punt waar alle boekpaden (concept klikken, suggestie, drag, bewerken) doorheen lopen — wordt de starttijd bij het openen nu op het dichtstbijzijnde kwartier gezet en de duur behouden:

  • Start 16:1116:15 (dichtstbijzijnde kwartier)
  • Duur 30 min blijft behouden → TOT 16:45

De duur wordt óók op een heel kwartier afgerond (min. 15 min), zodat de TOT-dropdown altijd op een echte optie landt in plaats van weer terug te vallen op 07:00. Zonder starttijd blijft de oude default 09:00 – 09:30.

Tests & verificatie

  • 4 nieuwe unit-tests (TDD), incl. het 16:11 → 16:15 / 16:45-scenario
  • 854/854 unit-tests groen
  • 8/8 boeken-gerelateerde e2e-tests groen
  • tsc --noEmit schoon, lint-neutraal (geen nieuwe meldingen)

🤖 Generated with Claude Code

The VAN/TOT dropdowns only offer quarter-hour options, so a raw block
time like 16:11 matched no <option> and the <select> silently fell back
to its first entry — which is why concept blocks (and entries booked
elsewhere) opened as 07:00–07:00.

Snap the seeded start to the nearest quarter and carry the original
duration (quarter-rounded, min 15m) in useBooking, the single chokepoint
all booking-form paths flow through, so both dropdowns land on a real
option and the booked range still reflects the block (16:11–16:41 →
16:15–16:45).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown

Coverage Report

Status Category Percentage Covered / Total
🔵 Lines 99.22% (🎯 95%) 2683 / 2704
🔵 Statements 98.64% (🎯 95%) 3064 / 3106
🔵 Functions 98.25% (🎯 95%) 787 / 801
🔵 Branches 96.02% (🎯 95%) 1716 / 1787
File Coverage
File Stmts Branches Functions Lines Uncovered Lines
Changed Files
src/ui/hooks/useBooking.ts 100% 98.21% 100% 100%
Generated in workflow #23 for commit 834e365 by the Vitest Coverage Report Action

@guuse guuse merged commit 62d285b into main Jun 3, 2026
2 checks passed
@guuse guuse deleted the claude/vibrant-roentgen-1c45fc branch June 3, 2026 12:36
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