Browse Source

aggiunto indice

master
Danilo Di Cuia 3 years ago
parent
commit
1e3650bf92
  1. 39
      src/Galleria.js
  2. 2
      src/ImageUpload.js
  3. 9
      src/MyForm.js
  4. 64
      src/index.js

39
src/Galleria.js

@ -35,40 +35,39 @@ export const Galleria = () => {
messaggi messaggi
.filter((d) => d.immagineURL != null) .filter((d) => d.immagineURL != null)
.map((d) => { .map((d) => {
console.log(d.immagineURL);
return d.immagineURL; return d.immagineURL;
}) })
); );
}); });
}, [evento]); }, [evento]);
useEffect(() => { // useEffect(() => {
if (images) { // if (images) {
function loadImage() { // function loadImage() {
const img = new Image(); // const img = new Image();
img.src = images[imgIndex]; // img.src = images[imgIndex];
img.onload = () => { // img.onload = () => {
if (imgIndex < images.length) { // if (imgIndex < images.length) {
cambiaimgIndex((i) => { // cambiaimgIndex((i) => {
return i + 1; // return i + 1;
}); // });
} // }
}; // };
} // }
loadImage(); // loadImage();
} // }
}, [imgIndex, images]); // }, [imgIndex, images]);
return ( return (
<div> <div>
{imgIndex !== images.length && ( {/* {imgIndex !== images.length && (
<LinearProgress <LinearProgress
variant="determinate" variant="determinate"
value={(imgIndex / images.length) * 100} value={(imgIndex / images.length) * 100}
style={{ position: "absolute", width: "100vw", top: "50%" }} style={{ position: "absolute", width: "100vw", top: "50%" }}
/> />
)} )}
{imgIndex === images.length && ( {imgIndex === images.length && ( */}
<div <div
style={{ style={{
margin: "0 auto", margin: "0 auto",
@ -98,7 +97,7 @@ export const Galleria = () => {
}} }}
/> />
</div> </div>
)} {/* )} */}
</div> </div>
); );
}; };

2
src/ImageUpload.js

@ -1,6 +1,6 @@
import React, { useState } from "react"; import React, { useState } from "react";
import firebase from "firebase/compat/app"; import firebase from "firebase/compat/app";
import "firebase/storage"; import "firebase/compat/storage";
import { Stack } from "@mui/system"; import { Stack } from "@mui/system";
import { Button } from "@mui/material"; import { Button } from "@mui/material";

9
src/MyForm.js

@ -14,8 +14,11 @@ export const MyForm = () => {
const [mandato, setMandato] = useState(false); const [mandato, setMandato] = useState(false);
const [imageUploading, setImageUploading] = useState(false); const [imageUploading, setImageUploading] = useState(false);
const [immagineURL, cambiaimmagineURL] = useState(null); const [immagineURL, cambiaimmagineURL] = useState(null);
const { register, handleSubmit } = useForm(); const { register, handleSubmit, reset } = useForm();
const onSubmit = ({ testo, autore }) => { const onSubmit = ({ testo, autore }, e) => {
reset("", {
keepValues: false,
});
setMandato(true); setMandato(true);
var postListRef = firebase.database().ref(`messaggi/${evento}`); var postListRef = firebase.database().ref(`messaggi/${evento}`);
var newPostRef = postListRef.push(); var newPostRef = postListRef.push();
@ -54,7 +57,7 @@ export const MyForm = () => {
</Typography> </Typography>
<h1 style={{ fontFamily: "LineaturaLight" }}> <h1 style={{ fontFamily: "LineaturaLight" }}>
puoi rimandere un altro messaggio in... puoi rimandere un altro messaggio in...
<Countdown onComplete={() => setMandato(false)} duration={10} /> <Countdown onComplete={() => setMandato(false)} duration={5} />
</h1> </h1>
</div> </div>
); );

64
src/index.js

@ -1,7 +1,7 @@
import "./App.css"; import "./App.css";
import React from "react"; import React, { useEffect, useState } from "react";
import ReactDOM from "react-dom/client"; import ReactDOM from "react-dom/client";
import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; import { BrowserRouter as Router, Routes, Route, Link } from "react-router-dom";
import firebase from "firebase/compat/app"; import firebase from "firebase/compat/app";
import "firebase/compat/database"; import "firebase/compat/database";
import "firebase/compat/analytics"; import "firebase/compat/analytics";
@ -9,6 +9,14 @@ import { Proiezione } from "./Proiezione";
import { MyForm } from "./MyForm"; import { MyForm } from "./MyForm";
import { Admin } from "./Admin"; import { Admin } from "./Admin";
import { Galleria } from "./Galleria"; import { Galleria } from "./Galleria";
import { Stack } from "@mui/system";
import { Container, Typography } from "@mui/material";
import List from "@mui/material/List";
import ListItem from "@mui/material/ListItem";
import ListItemText from "@mui/material/ListItemText";
import ListItemAvatar from "@mui/material/ListItemAvatar";
import Avatar from "@mui/material/Avatar";
import BeachAccessIcon from "@mui/icons-material/BeachAccess";
const firebaseConfig = { const firebaseConfig = {
apiKey: "AIzaSyBWE1l8WV_7eyKT-PMu0Kq2w_WiV0SUhJw", apiKey: "AIzaSyBWE1l8WV_7eyKT-PMu0Kq2w_WiV0SUhJw",
@ -25,10 +33,60 @@ const firebaseConfig = {
firebase.initializeApp(firebaseConfig); firebase.initializeApp(firebaseConfig);
firebase.analytics(); firebase.analytics();
const ListaEventi = () => {
const [eventi, cambiaEventi] = useState([]);
useEffect(() => {
var messagesRef = firebase.database().ref(`/eventi`);
messagesRef.once("value", function (snapshot) {
const eventiObject = snapshot.val();
const e = Object.keys(eventiObject).map((d) => {
console.log(eventiObject[d]);
return (
<ListItem>
{/* <ListItemAvatar>
<Avatar>
<BeachAccessIcon />
</Avatar>
</ListItemAvatar> */}
<Link key={d} to={`/eventi/${d}`}>
<ListItemText
primary={eventiObject[d]}
// secondary="July 20, 2014"
/>
</Link>
</ListItem>
);
});
cambiaEventi(e);
});
}, []);
if (!eventi) return <div></div>;
return (
<Container>
<List sx={{ width: "100%", maxWidth: 360, bgcolor: "background.paper" }}>
<ListItem>
<Typography
style={{
fontFamily: "Lineatura",
}}
>
I nostri eventi
</Typography>
</ListItem>
{eventi}
</List>
</Container>
);
};
ReactDOM.createRoot(document.getElementById("root")).render( ReactDOM.createRoot(document.getElementById("root")).render(
<Router> <Router>
<Routes> <Routes>
<Route path="/" element={<div />} /> <Route path="/" element={<ListaEventi />} />
<Route path="/:evento" element={<MyForm />} /> <Route path="/:evento" element={<MyForm />} />
<Route path="/eventi/:evento" element={<Galleria />} /> <Route path="/eventi/:evento" element={<Galleria />} />
<Route path="proiezione/:evento" element={<Proiezione />} /> <Route path="proiezione/:evento" element={<Proiezione />} />

Loading…
Cancel
Save