Made price range slider non-strict and added sensible default values

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

View File

@ -65,7 +65,7 @@ function mapValuesToModel(values: Object): SearchPreferences {
}; };
} }
const { values, handleSubmit, defineField } = useForm({ const { errors, values, handleSubmit, defineField } = useForm({
validationSchema: toTypedSchema( validationSchema: toTypedSchema(
yup.object({ yup.object({
priceRangeEnabled: yup.boolean(), priceRangeEnabled: yup.boolean(),
@ -87,8 +87,10 @@ const { 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)), Number(Object.keys(priceTicks).find((key) => priceTicks[key] == searchPreferences.value?.lowerPriceBound ?? "€")),
Number(Object.keys(priceTicks).find((key) => priceTicks[key] == searchPreferences.value?.upperPriceBound)), Number(
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,
@ -134,7 +136,7 @@ const emit = defineEmits({
const onSubmit = handleSubmit(async (values) => { const onSubmit = handleSubmit(async (values) => {
try { try {
const data = mapValuesToModel(values); const data = mapValuesToModel(values);
console.log(values);
await pb.collection("search_preferences").update(searchPreferences.value!.id!, data); await pb.collection("search_preferences").update(searchPreferences.value!.id!, data);
} catch (err) { } catch (err) {
console.log(err); console.log(err);
@ -161,7 +163,6 @@ const onSubmit = handleSubmit(async (values) => {
:ticks="priceTicks" :ticks="priceTicks"
track-size="8" track-size="8"
:disabled="!priceRangeEnabled" :disabled="!priceRangeEnabled"
strict
/> />
</div> </div>
</div> </div>
@ -226,6 +227,7 @@ 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>