import { useEffect, useState } from 'react'; import axios from 'axios'; import List from '@mui/material/List'; import ListItem from '@mui/material/ListItem'; import ListItemButton from '@mui/material/ListItemButton'; import ListItemText from '@mui/material/ListItemText'; import IconButton from '@mui/material/IconButton'; import ContentCopyRounded from '@mui/icons-material/ContentCopyRounded'; import { useSnackbar } from 'notistack'; function Component({zip, city}) { const [zips, setZips] = useState([]); const { enqueueSnackbar, closeSnackbar } = useSnackbar(); const fetchResults = (zip, city) => { city = encodeURIComponent(city); axios.get(`/api/query.php?zip=${zip}&city=${city}`) .then(function (response) { if (response.data.zips) { setZips(response.data.zips); } }) .catch(function (error) { console.log(error); }); } const copyValue = (value) => { navigator.clipboard.writeText(value); enqueueSnackbar("CopiƩ dans le presse-papier", { autoHideDuration: 2000, variant: "success", anchorOrigin: { vertical: "top", horizontal: "center" } }); } useEffect(() => { if (zip > 0 || city.length >= 4) { fetchResults(zip, city); } else { setZips([]); } }, [zip, city]); return ( <> {zips.map((zip, i) => { return ( {copyValue(`${zip.zip} ${zip.city}`)}} > } disablePadding > {copyValue(`${zip.zip} ${zip.city}`)}}> ); })} ); } export default Component;