Vaadin Flow 24.6.0.alpha4
Pre-releaseChanges since 24.6.0.alpha3
New features
-
Add support for customizable projectFileExtensions
Commit · Pull request · Issue -
Opt-out web components from package.json
Commit · Pull requestAdds new property
npm.excludeWebComponents
(ornpmExcludeWebComponents
in Maven configurations). By default, it'sfalse
and everything works as before.true
will exclude all web component dependencies frompackage.json
for development mode (Vite/dev bundle) and production bundle build. Excluded dependencies are all Vaadin core components (e.g. button, grid, login, etc.) and commercial components (e.g. charts, rich-text-editor, etc.), but not lumo/material themes.
Fixes
-
Client side value binding logic
Commit · Pull request · IssueChanges client side value binding logic so that if the user modifies the value during server round-trip, the value earlier sent to the server no longer overwrites user's changes once the round-trip finishes. Instead, user's changes are preserved. However, if the server-side value change handling logic actually changes the value and returns the new value to the client, that value will override any user input during round-trip.
-
Reconnect web components after session expiration
Commit · Pull request · IssueAfter session expiration, Flow client in webcomponent mode send a GET request to the server to re-initialize itself with a valid session cookie. However, the XHR call is done with the withCredentials flag set to false, making the browser ignore the Set-Cookie header in the response. This change forces the withCredential flag to true for resync request so that the new cookie can be handled by the browser and reused in the subsequent request that re-intitializes the embedded component. If PUSH is enabled, it also restores the connection after resynchornization request to make sure pending invocation queue, and especially the webcomponent connected events, can be flushed correctly and sent to the server. Also temporarily suspends hearbeat during resynchronization request to prevent issue with concurrent requests, potentially causing duplicated session expiration handling on the client.