vaadin / flow

Vaadin Flow is a Java framework binding Vaadin web components to Java. This is part of Vaadin 10+.
Apache License 2.0
616 stars 169 forks source link

Expose Vaadin request start, end and processing done events to JS #7369

Open petrixh opened 4 years ago

petrixh commented 4 years ago

In a customer project it became apparent that a reliable way to detect request start/end and vaadin-client-side-processing-end events would be very handy. In the case of this particular project these events are needed to block further user interaction on the client-side while a request is pending as the server might change the UI state significantly.

Hence, a feature request arouse to expose:

In order to run custom JS that blocks and then enables user input on the client-side. The Flow framework already has some internal mechanisms for this but they are not exposed the native JS, therefore they cannot be listened to unless one recompiles the flow-client module.

Browser: any Vaadin version: any? missing in 14.1 series at least

Legioth commented 4 years ago

One use case I had was with my splash screen add-on. In that case, I was interested in hiding the splash screen when everything was loaded, i.e. when the first "virtual" request that applies the initial UIDL was processed.

petrixh commented 4 years ago

Update from customer: After testing the POC that was given to them, they would appreciate the possibility to differentiate based on the request payload on their side (i.e. they might want to do something for a change, focus, blur... etc. event while ignore notification - close events). A way for the devs to do this differentiation in their code, while keeping Flow generic, was figured out and the required changes added to the PR ("vaadin-request-start" includes the request payload in event.detail that devs can then use to decide what they want to do when the request goes out)

pleku commented 3 years ago

Just noting here that the contribution to introduce this is still available in branch ph/ticket-7369 but the PR was closed since it was unfinished and we could not get back a definitive answer on whether or not it was still important or not. We have other priorities than finishing up the PR, so in case someone needs this feature, they can continue on the work (based on the open PR comments).

knoobie commented 2 years ago

@emarc this and the closed pr is probably related to our little mail discussion regarding observability :)

(even tho I'm not associated with the creator or customer he mentioned, just remembered this ticket)