From d2e35652bf9f13d4c9355bff4f4b2d109fe4c776 Mon Sep 17 00:00:00 2001 From: Luis Carrasco Date: Fri, 18 Oct 2024 11:34:26 +0200 Subject: [PATCH] Modified query parameter construction in the addQueryParameter method. --- .../software/xdev/vaadin/FilterComponent.java | 32 ++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/vaadin-simple-grid-filter/src/main/java/software/xdev/vaadin/FilterComponent.java b/vaadin-simple-grid-filter/src/main/java/software/xdev/vaadin/FilterComponent.java index c3ac6e8..ff0d08c 100644 --- a/vaadin-simple-grid-filter/src/main/java/software/xdev/vaadin/FilterComponent.java +++ b/vaadin-simple-grid-filter/src/main/java/software/xdev/vaadin/FilterComponent.java @@ -64,6 +64,7 @@ import com.vaadin.flow.data.value.ValueChangeMode; import com.vaadin.flow.router.BeforeEnterEvent; import com.vaadin.flow.router.BeforeEnterObserver; +import com.vaadin.flow.router.Location; import com.vaadin.flow.router.QueryParameters; import software.xdev.vaadin.builder.CustomizableFilterBuilder; @@ -1303,11 +1304,17 @@ private void addQueryParameter(final ChipBadgeExtension> c this.ui.getPage().fetchCurrentURL(currentUrl -> { - String separator = "?"; + final String questionMarkCharacter = "?"; + String querySeperator = ""; + String currentQuery = currentUrl.getQuery(); - if(currentUrl.getQuery() != null) + if(currentQuery != null) + { + querySeperator = "&"; + } + else { - separator = "&"; + currentQuery = ""; } this.ui @@ -1315,14 +1322,17 @@ private void addQueryParameter(final ChipBadgeExtension> c .getHistory() .replaceState( null, - currentUrl - + separator - + QueryParameterUtil.createQueryParameterString( - this.identifier, - filterCondition, - chipBadge.getBadgeId(), - chipBadge.isBtnDeleteEnabled(), - chipBadge.isBtnEditEnabled())); + new Location( + currentUrl.getPath() + + questionMarkCharacter + + currentQuery + + querySeperator + + QueryParameterUtil.createQueryParameterString( + this.identifier, + filterCondition, + chipBadge.getBadgeId(), + chipBadge.isBtnDeleteEnabled(), + chipBadge.isBtnEditEnabled()))); }); }