1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
function OfferSidebarContent(props) {
const filters = useSelector(({ offerApp }) => offerApp.filterOffers);
const labelsOffer = useSelector(({ offerApp }) => offerApp.labelsOffer);
const [year, setYear] = useState([filters.year.year__min,filters.year.year__max])
const [defaultYear, setDefaultYear] = useState([filters.year.year__min,filters.year.year__max])
// on ajoute un effet sur la mise à jour de filters pour mettre à jour le state
useEffect(() => {
setYear([filters.year.year__min,filters.year.year__max]);
setDefaultYear([filters.year.year__min,filters.year.year__max]);
}, [filters]);
const classes = useStyles(props);
const handleChange = (event, newValue) => {
setYear(newValue);
};
function valuetext(year) {
return `${year}`;
}
// on va régler un probleme a la fois, si on n'a pas de year__min, on renvoie rien
if (typeof filters.year.year__min === 'undefined') return null;
return (
<FuseAnimate animation="transition.slideUpIn" delay={400}>
<div className="flex-auto border-l-1 border-solid">
<div className="p-24">
<Button
component={Link}
to="/offers/offer/new"
variant="contained"
color="primary"
className="w-full"
>
AJOUTER UNE OFFRE
</Button>
</div>
<div className={classes.listWrapper}>
<ListSubheader className={classes.listSubheader} disableSticky>
MILLESIME
</ListSubheader>
<div className="p-24">
<Slider
defaultValue={defaultYear}
value={year}
onChange={handleChange}
valueLabelDisplay="auto"
aria-labelledby="range-slider"
getAriaValueText={valuetext}
min={filters.year.year__min}
max={filters.year.year__max}
>
</Slider>
</div>
</div>
</div>
</FuseAnimate>
);
}
export default OfferSidebarContent; |