{consegna2 !== null && consegna2.length > 0 && (
)}
{mappedConsegnaOptions.map(({ value, label, disabled }) => (
))}
);
};
const MAX_SLIDER_VALUE = 1500;
const BudgetFilters = () => {
const { t } = useTranslation();
const { minBudget, maxBudget, setAllParams } = useRicerca();
const minDebounced = useCallback(
debounce(async (value: number | null) => {
await setAllParams({
minBudget: value,
});
}, 500),
[setAllParams],
);
const maxDebounced = useCallback(
debounce(async (value: number | null) => {
await setAllParams({
maxBudget: value,
});
}, 500),
[setAllParams],
);
const [sliderValue, setSliderValue] = useState<[number, number]>([
Number(minBudget) / 100 || 0,
Number(maxBudget) / 100 || MAX_SLIDER_VALUE,
]);
const onSliderChangeEnd = () => {
const [min, max] = sliderValue;
minDebounced(min === 0 ? null : min * 100);
maxDebounced(max === MAX_SLIDER_VALUE ? null : max * 100);
};
useEffect(() => {
setSliderValue([
Number(minBudget) / 100 || 0,
Number(maxBudget) / 100 || MAX_SLIDER_VALUE,
]);
}, [minBudget, maxBudget]);
return (
<>
{(minBudget !== null || maxBudget !== null) && (
)}
setSliderValue(value as [number, number])}
onValueCommit={onSliderChangeEnd}
step={100}
value={sliderValue}
/>
{sliderValue[0]} €
{sliderValue[1] === MAX_SLIDER_VALUE ? "∞" : sliderValue[1]} €
>
);
};