filtres sur la liste des reviews

This commit is contained in:
2023-02-12 18:42:22 +01:00
parent 096f056e41
commit 2d11036283

View File

@@ -7,8 +7,17 @@ import styles from '../../styles/AvisListPage.module.css'
export default function AvisListPage() { export default function AvisListPage() {
const [minGrade, setMinGrade] = useState(0); const [minGrade, setMinGrade] = useState(0);
const [maxGrade, setMaxGrade] = useState(10); const [maxGrade, setMaxGrade] = useState(10);
const [sources, setSources] = useState({'borne': true, 'website': true})
const [filteredReviews, setFilteredREviews] = useState([])
const {reviews, error, loading} = useReviews(); const {reviews, error, loading} = useReviews();
useEffect(() => {
console.log(reviews)
const newReviews = reviews.filter((review) => review.note_principale >= minGrade && review.note_principale <= maxGrade && sources[review.nom_source])
setFilteredREviews(newReviews)
}, [reviews, minGrade, maxGrade, sources])
useEffect(() => { useEffect(() => {
if(minGrade > maxGrade) { if(minGrade > maxGrade) {
setMinGrade(maxGrade); setMinGrade(maxGrade);
@@ -32,11 +41,15 @@ export default function AvisListPage() {
<Form.Label>Types d'avis</Form.Label> <Form.Label>Types d'avis</Form.Label>
<Form.Check <Form.Check
type="switch" type="switch"
label="Automatique" label="Borne"
onChange={(e) => setSources({...sources, 'borne': e.target.checked})}
checked={sources['borne']}
/> />
<Form.Check <Form.Check
type="switch" type="switch"
label="Manuel" label="QR Code"
onChange={(e) => setSources({...sources, 'website': e.target.checked})}
checked={sources['website']}
/> />
</Form.Group> </Form.Group>
<Form.Group> <Form.Group>
@@ -53,7 +66,7 @@ export default function AvisListPage() {
</Form> </Form>
</Row> </Row>
<Row> <Row>
{!loading && !error && <AvisList avis={reviews} />} {!loading && !error && <AvisList avis={filteredReviews} />}
</Row> </Row>
</Card.Body> </Card.Body>
</Card> </Card>