[Experimental] Product Filter: Price (Beta) block: Prevent invalid price range selection in Product Filter Price block (#45403)

* Prevent invalid price range selection in Product Filter Price block

* Add changefile(s) from automation for the following project(s): woocommerce-blocks

---------

Co-authored-by: github-actions <github-actions@github.com>
This commit is contained in:
Alexandre Lara 2024-03-08 16:08:20 -03:00 committed by GitHub
parent 319408bb67
commit b162c9fab0
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 18 additions and 3 deletions

View File

@ -1,7 +1,7 @@
/**
* External dependencies
*/
import { store, getContext } from '@woocommerce/interactivity';
import { store, getContext, getElement } from '@woocommerce/interactivity';
import { formatPrice, getCurrency } from '@woocommerce/price-format';
import { HTMLElementEvent } from '@woocommerce/types';
@ -70,17 +70,28 @@ store< PriceFilterStore >( 'woocommerce/product-filter-price', {
type === 'min'
? Math.min(
Number.isNaN( value ) ? minRange : value,
maxRange - 1
maxPrice
)
: minPrice;
const currentMaxPrice =
type === 'max'
? Math.max(
Number.isNaN( value ) ? maxRange : value,
minRange + 1
minPrice
)
: maxPrice;
// In some occasions the input element is updated with the incorrect value.
// By using the element that triggered the event, we can ensure the correct value is used for the input.
const element = getElement();
if ( type === 'min' ) {
element.ref.value = currentMinPrice;
}
if ( type === 'max' ) {
element.ref.value = currentMaxPrice;
}
context.minPrice = currentMinPrice;
context.maxPrice = currentMaxPrice;

View File

@ -0,0 +1,4 @@
Significance: patch
Type: fix
Fix an issue where shoppers could select invalid price ranges in the Product Filter: Price (Beta) block