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

Add 'beforeClose' Observable to MdDialogRef #5209

Closed
wulfsberg opened this issue Jun 19, 2017 · 7 comments
Closed

Add 'beforeClose' Observable to MdDialogRef #5209

wulfsberg opened this issue Jun 19, 2017 · 7 comments
Labels
feature This issue represents a new feature or feature request rather than a bug or bug fix P4 A relatively minor issue that is not relevant to core functions

Comments

@wulfsberg
Copy link

Bug, feature request, or proposal:

Feature request

What is the expected behavior?

Being able to start processing instantly when a user selects an option in an MdDialog.

What is the current behavior?

An 'afterClose' Observable is available which only fires after all animations are done.

What are the steps to reproduce?

The behavior is easily seen on the "Examples" page of https://material.angular.io/components/component/dialog

What is the use-case or motivation for changing an existing behavior?

In many cases, a dialog functions as a confirmation for some additional processing (such as deleting an item), which in turn asynchronously updates the interface (say, removing the item from a list once deleted serverside).
Having to wait for an animation to finish before launching the async server call introduces unnecessary latency in the UI.

Which versions of Angular, Material, OS, TypeScript, browsers are affected?

Material 2.0.0-beta.6

Is there anything else we should know?

Delaying until after animation is a deliberate choice, as described here: #3890, but I find that reacting instantly is also a reasonable behavior, so I propose an Observable for each.

@willshowell
Copy link
Contributor

Related to #3460

@jelbourn jelbourn added the feature This issue represents a new feature or feature request rather than a bug or bug fix label Jun 20, 2017
@jelbourn jelbourn changed the title Add 'OnClose' Observable to MdDialogRef Add 'beforeClose' Observable to MdDialogRef Jun 20, 2017
@jelbourn jelbourn added the P4 A relatively minor issue that is not relevant to core functions label Jun 20, 2017
@jelbourn
Copy link
Member

Yeah, having beforeClose is something we intended to do (which is why we called the existing one afterClose to begin with).

@willshowell
Copy link
Contributor

Oh also #4647

@jelbourn
Copy link
Member

Ah, tracking via #4647 (thanks @willshowell)

@wulfsberg
Copy link
Author

The onBefore/closeAttempt/etc seems more concerned with how the user attempts to close the dialog, and the possibility of canceling that.
As long as it also makes the value of the choice reasonably easily available, it can pull double duty for my need, but it does seem to be semantically slightly different. (And apparently got somewhat mothballed over various standardization/accessibility issues).

@willshowell
Copy link
Contributor

@wulfsberg You're right that #3460 is really just focused on how the dialog has been closed. I'd suggest mentioning in #4647 that a beforeClose observable should emit the closing value so that your use case doesn't accidentally get forgotten here

@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 Sep 5, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feature This issue represents a new feature or feature request rather than a bug or bug fix P4 A relatively minor issue that is not relevant to core functions
Projects
None yet
Development

No branches or pull requests

3 participants