Repository navigation
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Issue number: resolves #30777, resolves #27975
What is the current behavior?
Currently, when
ion-datetimeis inside a modal or popover (usually throughion-datetime-button), cancelling or dismissing the overlay leaves the unconfirmed selection in place. Thecancel()method only emitsionCanceland closes the overlay, so reopening the datetime shows the cancelled date as selected even thoughvaluenever changed.What is the new behavior?
The datetime now listens for its parent overlay's dismiss event and resets its selection to
valueunless the overlay was dismissed with thedatetime-confirmrole. That covers the Cancel button, backdrop taps, swipes and hardware back. The reset skips the month animation since the overlay has already animated out, otherwise cancelling a selection in another month left the calendar stuck on that month when reopened. Callingcancel()on an inline datetime now restores the committed selection right away.Does this introduce a breaking change?
Other information
There was an earlier attempt at this in #27976 that called
reset()fromcancel(), which was closed until the design was settled. This reprocessesvaluedirectly instead, so it doesn't pick up the clearing behavior ofreset().This changes behavior in a few edge cases:
cancel()without closing an overlay now resets the selection, where before it only emittedionCancel.canDismissblocks the dismiss, the selection stays, since the user is still in the picker.confirm()from their ownonDidDismisshandler will confirm the original value, because the datetime resets first. Callingconfirm(true), orconfirm()before dismissing, isn't affected.Use the "Popover - Custom" and "Modal - Custom" examples, pick a date, cancel, then reopen: