Enter date of birth with dedicated day, month and year controls #67

Closed
opened 2026-10-23 10:11:19 +00:00 by tech · 0 comments
Owner

Goal

Replace the identity profile's unformatted date string with a usable birthday input that lets customers enter their birth date confidently.

Approach

Compose accessible day and year inputs with a localized month selector. Normalize valid dates to the existing YYYY-MM-DD profile contract; preserve input while showing specific inline errors for impossible or future dates. Reuse existing KYC journey measurement without collecting birth dates.

Acceptance criteria

  • Birthday entry uses labeled day, month and year controls and needs no calendar scrolling or separator entry.
  • Valid dates update the existing profile contract; invalid, partial and future dates cannot advance verification.
  • Leap dates, corrections, prefilled values, back navigation, disabled state, EN/RU, keyboard access and narrow/large-text layouts are covered.
  • Existing KYC submission and measurement remain intact without birth-date telemetry.
  • Focused tests, format check, app analyzer and make test-frontend pass.

Notes

Primary module: kyc; frontend-only. Stack on kyc-64 / PR #65 to retain the country selector visible in the current profile. Merge order: #65, then this birthday change. No new runtime dependencies, backend contract changes or age policy. Owner, frontend label and SXCHNGE project follow the existing KYC task #64. Delivery includes committed/pushed code, durable UX documentation and a PR. Merge is not authorized.

Delivery: PR #70, branch kyc-67, stacked on #65 (merge #65 first). Dedicated day/year inputs and a localized month selector replace ISO-string entry. Impossible and future dates show inline errors; partial/invalid edits disable Continue without erasing the visible components. Saved dates and Back navigation are covered. Existing KYC journey signals and transport/service/model/provider contracts remain intact; no birthday telemetry is added.

Validation passed: four changed Dart files format check, frontend/app flutter analyze, make test-frontend (230 tests), flutter build web with Wasm dry run, and release browser entry/invalid-date/recovery checks. Focused and full-journey checks include keyboard input, EN/RU, 320px at 1.6 text scale, leap dates, disabled state and profile synchronization. Native screen-reader/device keyboard/autofill QA and existing review-metric gaps remain documented in docs/ux/kyc.md. PR is ready for review; merge is not authorized.

### Goal Replace the identity profile's unformatted date string with a usable birthday input that lets customers enter their birth date confidently. ### Approach Compose accessible day and year inputs with a localized month selector. Normalize valid dates to the existing YYYY-MM-DD profile contract; preserve input while showing specific inline errors for impossible or future dates. Reuse existing KYC journey measurement without collecting birth dates. ### Acceptance criteria - [x] Birthday entry uses labeled day, month and year controls and needs no calendar scrolling or separator entry. - [x] Valid dates update the existing profile contract; invalid, partial and future dates cannot advance verification. - [x] Leap dates, corrections, prefilled values, back navigation, disabled state, EN/RU, keyboard access and narrow/large-text layouts are covered. - [x] Existing KYC submission and measurement remain intact without birth-date telemetry. - [x] Focused tests, format check, app analyzer and make test-frontend pass. ### Notes Primary module: kyc; frontend-only. Stack on kyc-64 / PR #65 to retain the country selector visible in the current profile. Merge order: #65, then this birthday change. No new runtime dependencies, backend contract changes or age policy. Owner, frontend label and SXCHNGE project follow the existing KYC task #64. Delivery includes committed/pushed code, durable UX documentation and a PR. Merge is not authorized. Delivery: [PR #70](https://git.sendico.io/tech/sxchnge/pulls/70), branch `kyc-67`, stacked on #65 (merge #65 first). Dedicated day/year inputs and a localized month selector replace ISO-string entry. Impossible and future dates show inline errors; partial/invalid edits disable Continue without erasing the visible components. Saved dates and Back navigation are covered. Existing KYC journey signals and transport/service/model/provider contracts remain intact; no birthday telemetry is added. Validation passed: four changed Dart files format check, frontend/app flutter analyze, make test-frontend (230 tests), flutter build web with Wasm dry run, and release browser entry/invalid-date/recovery checks. Focused and full-journey checks include keyboard input, EN/RU, 320px at 1.6 text scale, leap dates, disabled state and profile synchronization. Native screen-reader/device keyboard/autofill QA and existing review-metric gaps remain documented in docs/ux/kyc.md. PR is ready for review; merge is not authorized.
tech added the frontend label 2026-10-23 10:11:19 +00:00
tech self-assigned this 2026-10-23 10:11:19 +00:00
tech added this to the SXCHNGE project 2026-10-23 10:11:19 +00:00
tech added reference kyc-67 2026-10-23 10:11:27 +00:00
tech closed this issue 2026-10-23 10:32:05 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: tech/sxchnge#67