Releases: vaadin/flow
Vaadin Flow 24.5.0.beta5
Changes since 24.5.0.beta4
New features
-
HMR for translation files (#20142)
Commit · Pull requestFor #20118 Requires vaadin/hilla#2795 to fully fix the issue.
-
Add MenuConfiguration (#20138)
Commit · Pull request · IssueNew public API for building application menu: adds
MenuConfiguration
,MenuOptions
andMenuOption
whereMenuConfiguration
is the main entry point to access menu data to build main menu.
Fixes
-
Cache ClassFinder for reuse in mojo execution (#20148)
Commit · Pull request · IssueCreates ClassFinder once per mojo execution, preventing eccessive and useless scans.
-
Access-controlled layout (#20120)
Commit · Pull requestRemove layout name from deny context.
-
Always create AvailableViewInfo.menu (#20136)
Commit · Pull request · IssueCreate always MenuData in
AvailableViewInfo.menu
to avoid need for extra null checking in automatic menu in Hilla. This change affects only code that reads available client routes from Hilla generated json file. -
Change blank icon to null in MenuData (#20137)
Commit · Pull request · Issue
Vaadin Flow 24.5.0.beta4
Changes since 24.5.0.beta3
Fixes
-
Always fetch reactEnabled from service (#20125)
Commit · Pull request -
Consider layout prefixes when checking for route and alias paths (#20126)
Commit · Pull request · Issue -
Allow null response in logout (#20057)
Commit · Pull request · IssueDon't throw NullPointerException in case of null VaadinServletResponse in AuthenticationContext#logout. Tolerate null response better in case when running with @Push(transport = Transport.WEBSOCKET), or when response is null for some other reason. Makes logout also work in WEBSOCKET mode by automatically switching to WEBSOCKET_XHR for one additional request that executes logout.
Vaadin Flow 24.5.0.beta3
Changes since 24.5.0.beta2
New features
- ComponentTracker file location of Kotlin files (#20073)
Commit · Pull request
Fixes
-
Add nodeVersion in gradle plugin settings (#20059)
Commit · Pull requestPrior to this fix, the settings declared in Gradle were not being passed to the plugin. For example, changing the nodeVersion in build.gradle did not update the actual nodeVersion used.
-
Queued navigate with React Router (#19985)
Commit · Pull request · Issue
-
Store layout packages (#20075)
Commit · Pull request · IssueStore layout packages in development mode reload cache as layouts may not be in same packages as routes.
-
Layout should be collected as entyrpoint (#20076)
Commit · Pull request · IssueLayout annotated classes should be collected as entrypoints for production builds.
-
Update title after navigation (#20047)
Commit · Pull request · IssueUpdate the page title after navigation has ended to not have the wrong title in history.
-
Hide root output element (#20040)
Commit · Pull request · IssueEnsures that root output element added for React router in Flow.tsx doesn't accidentally change the main layout with CSS rules targeting it.
Vaadin Flow 24.4.9
Changes since 24.4.8
New features
- ComponentTracker file location of Kotlin files (#20073)
Commit · Pull request
Fixes
-
Queued navigate with React Router (#19985)
Commit · Pull request · Issue -
Add nodeVersion in gradle plugin settings (#20059)
Commit · Pull requestPrior to this fix, the settings declared in Gradle were not being passed to the plugin. For example, changing the nodeVersion in build.gradle did not update the actual nodeVersion used.
-
Update title after navigation (#20047) (CP: 24.4)
Commit · Pull request · Issue
-
Close overlay drawer on click (#19984)
Commit · Pull request · IssueClose the overlay drawer even when clicking on same link and no actual navigation happens. This in case the flag has for some reason not been reset after a click.
-
Do not throw if re-setting the login view (#19996)
Commit · Pull request · Issue -
Fail fast if view defines same path for route and route alias (#19977)
Commit · Pull request · Issue -
Forward with optional callback (#19959)
Commit · Pull request · Issues 19794, 19822Also fixes #19813 in a more coherent way. Relevant test is com.vaadin.flow.uitest.ui.PreserveOnRefreshForwardingIT
-
Evaluate target not active (#19945)
Commit · Pull request · IssueFor deciding what action to take we should evaluate where we are going and not the current active path.
Vaadin Flow 24.3.18
Changes since 24.3.17
Fixes
-
Add nodeVersion in gradle plugin settings (#20059)
Commit · Pull requestPrior to this fix, the settings declared in Gradle were not being passed to the plugin. For example, changing the nodeVersion in build.gradle did not update the actual nodeVersion used.
-
Fail fast if view defines same path for route and route alias (#19977)
Commit · Pull request · Issue -
Wait for output reading to complete before parsing version (#19921)
Commit · Pull requestNodeInstall.getVersion currently does not block waiting for STDOUT and STDERR to be read completely. This causes random failure during node installation because of forcing an empty version. This change waits for future to complete before parsing the version value.
Vaadin Flow 24.5.0.beta2
Changes since 24.5.0.beta1
New features
-
Report application URL when application is started (#20027)
Commit · Pull requestThis is useful in a couple of cases: 1. Browser launcher is not enabled 2. Browser launcher does not work 3. You closed the browser tab and a new one is not automatically reopened when you restart
Fixes
-
Validate Control Center feature when used (#20024)
Commit · Pull request · IssueChanges production build info to validate Control Center feature only when VaadinActuatorEndpoint is in the class path. Class will be included with
control-center-starter
Vaadin platform dependency. -
Close overlay drawer on click (#19984)
Commit · Pull request · IssueClose the overlay drawer even when clicking on same link and no actual navigation happens. This in case the flag has for some reason not been reset after a click.
-
Do not throw if re-setting the login view (#19996)
Commit · Pull request · Issue -
Ensure session is registered with Hotswapper
Commit · Pull request · IssueVaadinSession references are registered in Hotswapper in a session init listener. However, the listener might not always been invoked, for example if the HTTP session is serialized and deserialized on server restart. This change registers a UI init listener to make sure VaadinSession reference is also registered for existing sessions.
-
Fail fast if view defines same path for route and route alias
Commit · Pull request · Issue -
Forward with optional callback
Commit · Pull request
Vaadin Flow 23.5.6
No changes since 23.5.5
Vaadin Flow 23.5.5
Changes since 23.5.4
Fixes
- Fail fast if view defines same path for route and route alias (#19977)
Commit · Pull request · Issue
Vaadin Flow 24.5.0.beta1
All Changes since Vaadin Flow 24.4
New features
-
Automatic Flow main layouts
DocsVaadin Flow automatically adds the Flow routes to the router layout that is marked with
AtLayout
new annotation.
Includes the following commits:-
Automatic Flow layout
Commit · Pull requestAutomatically match layout for both flow and hilla route. format Add server layout usage information to routes.tsx template This reverts commit bad2fec. Have OutletElement as a tsx file in flow-react jar Add javadoc for auto layout getParentLayout method.
-
Generate layout.json
Commit · Pull requestGenerate a layout.json for Hilla to automatically enable server layouts part of vaadin/hilla#2709.
-
-
Dynamic menu items in Flow main layout
DocsCollects and provides
AtMenu
annotated Flow routes and Hilla views filtered by access control resolutions, can be used in the Flow main layout to render links in the navigation bar in a generic way without explicit Java classes for routes.-
Add collectMenuItemsList() to MenuRegistry
Commit · Pull request · Issue -
Get menu views api
Commit · Pull request · IssueCreate MenuRegistry for getting automatic menu views for population.
-
Filter client routes by authentication and role
Commit · Pull requestAdd filtering of menu client routes by checking authentication and roles. Do not check for routes in ClientRoutesProvider as the results are generated from the same source data as the data read/generated by MenuRegistry.
-
-
Flow components as children for React-based component
Doc · Commit · Pull request · IssueAllows having Flow Components as children in a ReactAdapterComponent (Flow wrapper for React component).
-
HotSwap improvements
Provides a single endpoint for hotswap tools that internally chooses the best strategy of UI update - full page reload or UI component reload.
Includes the following commits:
-
API for reloading current route target
Commit · Pull request -
Add a common API to integrate with hotswap tools
Commit · Pull request
-
-
Record support in Binder
Commit · Pull requestProvides an API to use Java Records as bean types for read-only beans in Binder.
-
Support for nonce-based strict Content Security Policy
DocsVaadin Flow isn’t generally compatible with strict CSP rules, however, with some effort, nonce-based strict CSP can be used with Vaadin Flow applications. See the linked documentation for how to set it up.
-
Add alternative translate methods to I18NProvider
Commit · Pull request · IssueAdds static
I18NProvider#translate
methods for alternative way to get translation. Compares to calling getTranslation viaVaadinService.getCurrent().getInstantiator().getI18NProvider()
.translate
methods throws IllegalStateException without active VaadinService. -
Speedup startup time by excluding jars
Commit · Pull request · IssueOptimize class scanning of VaadinServletContextInitializer by excluding some commonly used jars and add support for vaadin.blocked-jar boolean property in META-INF/VAADIN/package.properties to exclude whole jar content from the class scanner.
-
Added HasLabelAsText interface to NativeButtonElement.
Commit · Pull request -
Filterable class scanning of JAR
Commit · Pull request · IssueThis change improves optimization of class scanning of
VaadinServletContextInitializer
by reading optional configuration file within a JAR dependency. Configuration file is a regular properties file that can containvaadin.allowed-packages
orvaadin.blocked-packages
to exclude/include packages being scanned byVaadinServletContextInitializer
. Package exclusion/inclusion effects only classes in the JAR/module whereMETA-INF/VAADIN/package.properties
is located at. Notice that this is only affecting the performance of the class scanning of Vaadin specific annotations and types and this feature is not meant to be used for excluding packages from the whole application. E.g. excludingVaadinServiceInitListener
in a Spring application is not stopping Spring and Vaadin initializing it anyway, although some time-consuming actions likeDevModeServletContextListener
would still exclude it for optimization. -
Add raw html table and related components
Commit · Pull request -
Create converters for numeric values from NumberField
Commit · Pull request · IssueThis pull request introduces converter classes which converts between Numeric data types. This change addresses the need for such converters as outlined in issue #5134. With the availability of a NumberField in Vaadin, it is essential to have converters that facilitate the use of various number formats with this component.
-
Add ValueContext.getBinder()
Commit · Pull requestoriginal authors: @archiecobbs and @mstahv
-
Load Lumo utility CSS by default
Commit · Pull requestThe imports have been manually defined in all new starter projects for a long time so this is not supposed to break much anything.
-
Upgrade to TypeScript 5.5
Commit · Pull request -
Add application identifier to build info
Commit · Pull requestGets or computes an application identifier during production build and store it into flow-build-info.json.
-
Refresh browser using dev-tools connection
Commit · Pull requestUses the dev-tools websocket connection to refresh the UI when PUSH is not available, instead of forcing a page reload.
-
Push and replace without navigation callback
Commit · Pull request · IssueAdd feature to support replace and push without getting a callback to the server for the change.
-
Add CompletableFuture WebStorage API
Commit · Pull request · IssueAdds CompletableFuture methods for WebStorage.getItem.
-
Strongly cache Copilot files
Commit · Pull requestSpeeds up every reload as there is no need to check if the files have changed.
-
Create Fieldset - Legend Java API
Commit · Pull request · IssueJava API to create a and html tag without using a custom Java class to group fields.
-
Add option to not modify readonly files during copy, add logging of time
Commit · Pull request · IssueAllows to skip setting writable flag on copied files by providing the vaadin.frontend.disableWritableFlagCheckOnCopy system property. This may improve performance in c...
Vaadin Flow 24.5.0.alpha20
Changes since 24.5.0.alpha19
Fixes
-
Reset the Premium Features flag before license checking
Commit · Pull requestThe pre-compiled production bundle comes with true value of this flag always, because Vaadin CI server has a sub that enables it. Thus, Flow need to reset this flag before it calls the license server.