Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix(material/datepicker): avoid rerender when min/maxDate changes to different time on the same day #24434

Merged
merged 1 commit into from
Mar 31, 2022

Conversation

zarend
Copy link
Contributor

@zarend zarend commented Feb 16, 2022

Avoid re-rendering when the [minDate] or [maxDate]
Input change to a different time on the same day.

In ngOnChanges, do not call init if the previous and current value for
minDate/maxDate are on the same day. This makes #24384 a non-breaking
code change.

Fixes #24435

@zarend zarend added target: patch This PR is targeted for the next patch release area: material/datepicker labels Feb 16, 2022
@zarend zarend force-pushed the calendar-ngOnChanges branch from 854bf34 to 4e68b92 Compare February 16, 2022 23:55
src/material/datepicker/calendar.ts Outdated Show resolved Hide resolved
src/material/datepicker/calendar.ts Outdated Show resolved Hide resolved
@zarend zarend force-pushed the calendar-ngOnChanges branch from 4e68b92 to 2c15415 Compare March 22, 2022 23:36
@zarend zarend marked this pull request as ready for review March 22, 2022 23:36
@zarend zarend requested a review from mmalerba as a code owner March 22, 2022 23:36
@zarend
Copy link
Contributor Author

zarend commented Mar 22, 2022

@wagnermaciel @crisbeto this PR is ready for your eyes again 👀 . I've addressed the PR comments and it is no longer a draft. This is the most readable solution I could come up with, curious to know what you think.

@zarend zarend requested a review from wagnermaciel March 22, 2022 23:37
@zarend zarend force-pushed the calendar-ngOnChanges branch 3 times, most recently from 1d29bfb to c349eba Compare March 22, 2022 23:43
@zarend zarend changed the title fix(material/datepicker): avoid re-rendering mat-calendar when minDat… fix(material/datepicker): avoid rerender when min/maxDate changes to different time on the same day Mar 22, 2022
@zarend zarend force-pushed the calendar-ngOnChanges branch from c349eba to 9f1fed6 Compare March 28, 2022 22:21
…different time on the same day

Avoid re-rendering <mat-calendar/> when the [minDate] or [maxDate]
Input change to a different time on the same day.

In `ngOnChanges`, do not call `init` if the previous and current value for
minDate/maxDate are on the same day. This makes angular#24384 a non-breaking
code change.

Fixes angular#24435
@zarend zarend force-pushed the calendar-ngOnChanges branch from 9f1fed6 to 37b4f09 Compare March 28, 2022 22:22
@andrewseguin andrewseguin added the action: merge The PR is ready for merge by the caretaker label Mar 29, 2022
@andrewseguin andrewseguin merged commit 6f9743c into angular:master Mar 31, 2022
andrewseguin pushed a commit that referenced this pull request Mar 31, 2022
…different time on the same day (#24434)

Avoid re-rendering <mat-calendar/> when the [minDate] or [maxDate]
Input change to a different time on the same day.

In `ngOnChanges`, do not call `init` if the previous and current value for
minDate/maxDate are on the same day. This makes #24384 a non-breaking
code change.

Fixes #24435

(cherry picked from commit 6f9743c)
forsti0506 pushed a commit to forsti0506/components that referenced this pull request Apr 3, 2022
…different time on the same day (angular#24434)

Avoid re-rendering <mat-calendar/> when the [minDate] or [maxDate]
Input change to a different time on the same day.

In `ngOnChanges`, do not call `init` if the previous and current value for
minDate/maxDate are on the same day. This makes angular#24384 a non-breaking
code change.

Fixes angular#24435
crapStone pushed a commit to Calciumdibromid/CaBr2 that referenced this pull request Apr 19, 2022
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@angular/cdk](https://github.com/angular/components) | dependencies | patch | [`13.3.2` -> `13.3.3`](https://renovatebot.com/diffs/npm/@angular%2fcdk/13.3.2/13.3.3) |
| [@angular/material](https://github.com/angular/components) | dependencies | patch | [`13.3.2` -> `13.3.3`](https://renovatebot.com/diffs/npm/@angular%2fmaterial/13.3.2/13.3.3) |

---

### Release Notes

<details>
<summary>angular/components</summary>

### [`v13.3.3`](https://github.com/angular/components/blob/HEAD/CHANGELOG.md#&#8203;1333-tweed-table-2022-04-13)

[Compare Source](angular/components@13.3.2...13.3.3)

##### cdk

| Commit | Type | Description |
| -- | -- | -- |
| [949e3c7fbc](angular/components@949e3c7) | fix | **a11y:** visually hidden element affecting scrolling ([#&#8203;24620](angular/components#24620)) |

##### material

| Commit | Type | Description |
| -- | -- | -- |
| [1e010a3624](angular/components@1e010a3) | fix | **checkbox:** add the boolean property coercion for checked input ([#&#8203;20645](angular/components#20645)) |
| [6c65b1d703](angular/components@6c65b1d) | fix | **chips:** prevent default behavior on remove button ([#&#8203;24722](angular/components#24722)) |
| [4501b2518d](angular/components@4501b25) | fix | **datepicker:** avoid rerender when min/maxDate changes to different time on the same day ([#&#8203;24434](angular/components#24434)) |
| [aae60833eb](angular/components@aae6083) | fix | **list:** wrong order of arguments when calling custom compareWith function ([#&#8203;24743](angular/components#24743)) |
| [68c5e870bd](angular/components@68c5e87) | fix | **select:** empty space read out by VoiceOver on Chrome ([#&#8203;24741](angular/components#24741)) |
| [0d1755d566](angular/components@0d1755d) | fix | **snack-bar:** update generic types for openFromComponent ([#&#8203;24634](angular/components#24634)) |
| [b83d225b33](angular/components@b83d225) | fix | **tabs:** wrong scroll distance if selected tab is removed ([#&#8203;24118](angular/components#24118)) |
| [ca30f426a9](angular/components@ca30f42) | perf | **progress-bar:** do not run change detection if there are no `animationEnd` listeners ([#&#8203;24673](angular/components#24673)) |

#### Special Thanks

Artur Androsovych, Georgian Stan, Klemen Oslaj, Kristiyan Kostadinov, Michael Doner, Pascal Weyrich, Paul Gschwendtner, RobStrader and Zach Arend

<!-- CHANGELOG SPLIT MARKER -->

</details>

---

### Configuration

📅 **Schedule**: At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about these updates again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, click this checkbox.

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).

Co-authored-by: cabr2-bot <cabr2.help@gmail.com>
Reviewed-on: https://codeberg.org/Calciumdibromid/CaBr2/pulls/1306
Reviewed-by: Epsilon_02 <epsilon_02@noreply.codeberg.org>
Co-authored-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
Co-committed-by: Calciumdibromid Bot <cabr2_bot@noreply.codeberg.org>
@angular-automatic-lock-bot
Copy link

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators May 1, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
action: merge The PR is ready for merge by the caretaker area: material/datepicker target: patch This PR is targeted for the next patch release
Projects
None yet
3 participants