angular / angular/components

bug(Datepicker): setting value inside valueChanges doesn't update the UI

Open
#27,983 1 comment 0 reactions 0 assignees View on GitHub
area: material/datepicker P4
Dominant language
TypeScript
Stars
25k
Forks
6.8k
Avg merge
1d 8h
Merged PRs (30d)
91

Description

### Is this a regression?

I don't know if this was working at some point or not

### Description

I am using reactive forms to get/set values from a datepicker and I noticed that if I set a date manually, inside the valueChanges event based on some condition, the value of the form control updates, but not the UI.

The UI changes however if you remove the input and manually set a value inside valueChanges.

### Reproduction

StackBlitz link: https://stackblitz.com/edit/qpu5ns
Steps to reproduce (1):
(1*. Select any date - optional)
1. Select the 10th of any month
2. Check date displayed in input vs date printed under the input

### Expected Behavior

We have the same date in the input as printed below the input

### Actual Behavior

The date in the input is the date selected using the datepicker, the date below the input is the date set inside valueChanges

### Environment

Browser: Chrome
(From the stackblitz environment)
Angular CLI: 16.1.0
Node: 18.18.0
Package Manager: yarn 1.22.19
OS: linux x64

Angular: 16.1.1
... animations, common, compiler, compiler-cli, core, forms
... platform-browser, platform-browser-dynamic, router

| Package | Version |
|--------|--------|
| @angular-devkit/architect | 0.1601.0 |
| @angular-devkit/build-angular | 16.1.0 |
| @angular-devkit/core | 16.1.0 |
| @angular-devkit/schematics | 16.1.0 |
| @angular/cdk | 16.2.9 |
| @angular/cli | 16.1.0 |
| @angular/material | 16.2.9 |
| @angular/material-moment-adapter | 16.2.9 |
| @schematics/angular | 16.1.0 |
| rxjs | 7.4.0 |
| typescript | 5.0.3 |

Contributor guide

Open the contributing guide

Research direction

Start with the linked StackBlitz reproduction and trace the datepicker's reactive-forms value update path in the Angular Material components repository. Confirm the behavior when setting a value inside valueChanges, then add a regression test showing that the input UI matches the updated form-control value.

Written by the indexing model from the issue text.

Assessment

Tech stack
angular, typescript
Domain
frontend
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.