diff --git a/src/Galleria.js b/src/Galleria.js index c69141e..546db83 100644 --- a/src/Galleria.js +++ b/src/Galleria.js @@ -8,34 +8,62 @@ import ArrowBackIcon from "@mui/icons-material/ArrowBack"; import IconButton from "@mui/material/IconButton"; import { Stack } from "@mui/system"; import logoSrc from "./logo_chat.svg"; -import { Fade } from "@mui/material"; +import { Fade, LinearProgress } from "@mui/material"; export const Galleria = () => { const { evento } = useParams(); const [messaggi, cambiaMessaggi] = useState([]); - - const [indiceCorrente, cambiaindiceCorrente] = useState(0); + const [imgIndex, cambiaimgIndex] = useState(0); + const [images, cambiaimmagini] = useState([]); useEffect(() => { var messagesRef = firebase.database().ref(`/messaggi/${evento}`); messagesRef.on("value", function (snapshot) { - var messaggi = snapshot.val(); - - cambiaMessaggi( - Object.keys(messaggi) + const messaggiObject = snapshot.val(); + const messaggi = Object.keys(messaggiObject) + .map((d) => { + return messaggiObject[d]; + }) + .filter((d) => d.approvato) + .sort((a, b) => a.timestamp - b.timestamp); + cambiaMessaggi(messaggi); + cambiaimmagini( + messaggi + .filter((d) => d.immagineURL != null) .map((d) => { - return messaggi[d]; + return d.immagineURL; }) - .filter((d) => d.approvato) - .sort((a, b) => a.timestamp - b.timestamp) ); }); }, [evento]); - const messaggioDaMostrare = messaggi[indiceCorrente]; + useEffect(() => { + if (images) { + function loadImage() { + const img = new Image(); + img.src = images[imgIndex]; + img.onload = () => { + if (imgIndex < images.length) { + cambiaimgIndex((i) => { + return i + 1; + }); + } + }; + } + loadImage(); + } + }, [imgIndex, images]); + return (