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
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
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
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.
tech referenced this issue2026-10-23 10:33:42 +00:00