Fixed error caused by NaN in price range field

main
Eloi Zalczer 2024-07-01 12:32:56 +02:00
parent 0383876b54
commit af276df223
1 changed files with 10 additions and 5 deletions

View File

@ -49,6 +49,14 @@ const tagsLabels = computed(() => {
return labels; return labels;
}); });
function priceToIndex(price: string | undefined, defaultValue: string) {
if (price) {
return Number(Object.keys(priceTicks).find((key) => priceTicks[key] == price));
} else {
return Number(Object.keys(priceTicks).find((key) => priceTicks[key] == defaultValue));
}
}
function mapValuesToModel(values: Object): SearchPreferences { function mapValuesToModel(values: Object): SearchPreferences {
return { return {
priceRangeEnabled: values["priceRangeEnabled"], priceRangeEnabled: values["priceRangeEnabled"],
@ -87,10 +95,8 @@ const { errors, values, handleSubmit, defineField } = useForm({
includeRestaurantsEnabled: searchPreferences.value?.includeRestaurantsEnabled, includeRestaurantsEnabled: searchPreferences.value?.includeRestaurantsEnabled,
excludeRestaurantsEnabled: searchPreferences.value?.excludeRestaurantsEnabled, excludeRestaurantsEnabled: searchPreferences.value?.excludeRestaurantsEnabled,
priceRange: [ priceRange: [
Number(Object.keys(priceTicks).find((key) => priceTicks[key] == searchPreferences.value?.lowerPriceBound ?? "€")), priceToIndex(searchPreferences.value?.lowerPriceBound, "€"),
Number( priceToIndex(searchPreferences.value?.upperPriceBound, "€€€€"),
Object.keys(priceTicks).find((key) => priceTicks[key] == searchPreferences.value?.upperPriceBound ?? "€€€€")
),
], ],
includedTags: searchPreferences.value?.includedTags, includedTags: searchPreferences.value?.includedTags,
excludedTags: searchPreferences.value?.excludedTags, excludedTags: searchPreferences.value?.excludedTags,
@ -227,7 +233,6 @@ const onSubmit = handleSubmit(async (values) => {
</div> </div>
<div class="flex-1"></div> <div class="flex-1"></div>
<div> <div>
{{ errors }}
{{ filteredRestaurants }} filtered restaurants {{ filteredRestaurants }} filtered restaurants
<button @click="onSubmit" class="btn btn-outline w-full">Save preferences</button> <button @click="onSubmit" class="btn btn-outline w-full">Save preferences</button>
</div> </div>