-

-
+
);
break;
@@ -98,7 +120,7 @@ function ImageUpload({ onImageURLSet }) {
);
}
- return
{componente};
+ return componente;
}
export default ImageUpload;
diff --git a/src/MyForm.js b/src/MyForm.js
index c3fdbfa..d060b34 100644
--- a/src/MyForm.js
+++ b/src/MyForm.js
@@ -1,8 +1,9 @@
+import logoSrc from "./logo_p.svg";
import React, { useState } from "react";
import firebase from "firebase/app";
import TextField from "@mui/material/TextField";
import { Container, Stack } from "@mui/system";
-import { Button } from "@mui/material";
+import { Button, Typography } from "@mui/material";
import { useForm } from "react-hook-form";
import Countdown from "./Countdown";
import ImageUpload from "./ImageUpload";
@@ -39,11 +40,26 @@ export const MyForm = () => {
);
}
return (
-
+
+
+

+
+ Manda un messaggio!
+
+
diff --git a/src/Proiezione.js b/src/Proiezione.js
index cc7dc67..a49318a 100644
--- a/src/Proiezione.js
+++ b/src/Proiezione.js
@@ -1,8 +1,8 @@
import React, { useEffect, useState } from "react";
import firebase from "firebase/app";
-import { Button, Grid } from "@mui/material";
-import { Admin } from "./Admin";
-import { MyForm } from "./MyForm";
+import { Button, Grid, Stack } from "@mui/material";
+import videoSrc from "./video.mp4";
+import logoSrc from "./logo.svg";
import { useInterval } from "./Countdown";
window.debug = false;
@@ -16,8 +16,8 @@ export const Proiezione = () => {
var messagesRef = firebase.database().ref("/messaggi");
messagesRef.on("child_added", function (snapshot) {
+ console.log("child_added");
var messaggio = snapshot.val();
- console.log(messaggio);
cambiaMessaggi((oldArray) => {
const newArray = [...oldArray, messaggio].sort(
(a, b) => b.timestamp - a.timestamp
@@ -28,6 +28,7 @@ export const Proiezione = () => {
});
messagesRef.on("child_changed", function (snapshot) {
+ console.log("child_changed");
const messaggio = snapshot.val();
cambiaMessaggi((oldArray) => {
const newArray = [...oldArray];
@@ -46,15 +47,14 @@ export const Proiezione = () => {
cambiaindiceCorrente(newIndice);
};
- const ContainerMessaggio = () => {
+ const ContainerMessaggio = ({ messaggiApprovati, indiceCorrente }) => {
if (!messaggiApprovati.length) {
return nessun messaggio
;
} else {
- const messaggioCorrente = messaggiApprovati[indiceCorrente];
-
return (
);
@@ -63,23 +63,20 @@ export const Proiezione = () => {
return (
-
+
+

-
-
+ />
);
};
@@ -97,31 +94,91 @@ const Immagine = ({ url }) => {
>
);
};
-const Messaggio = ({ nextMessage, messaggioCorrente }) => {
- const [timeLeft, setTimeLeft] = useState(5);
+
+const Messaggio = ({ nextMessage, messaggiApprovati, indiceCorrente }) => {
+ const [timeLeft, setTimeLeft] = useState(6);
+ const [fadeProp, setFadeProp] = useState("in");
+ const [messaggioDaMostrare, setMessaggioDaMostrare] = useState(null);
+
+ useEffect(() => {
+ if (messaggiApprovati[indiceCorrente] != messaggioDaMostrare) {
+ setFadeProp("out");
+ setTimeout(() => {
+ setMessaggioDaMostrare(messaggiApprovati[indiceCorrente]);
+ setFadeProp("in");
+ }, 1000);
+ }
+ }, [messaggiApprovati, indiceCorrente]);
useInterval(() => {
if (timeLeft === 1) {
- nextMessage();
+ setFadeProp("out");
+ setTimeout(() => {
+ nextMessage();
+ }, 2000);
} else {
setTimeLeft(timeLeft - 1);
}
}, 1000);
return (
-
- {messaggioCorrente.immagineURL && (
-
- )}
-
{messaggioCorrente.testo}
-
da {messaggioCorrente.autore}
+
+
+ {messaggioDaMostrare && (
+
+ {messaggioDaMostrare.immagineURL && (
+
+ )}
+
+ {messaggioDaMostrare.testo}
+
+
+ da {messaggioDaMostrare.autore}
+
- {debug && (
-
-
- {timeLeft}
-
- )}
+ {debug && (
+
+
+ {timeLeft}
+
+ )}
+
+ )}
+
);
};
+
+const VideoComponent = React.memo(() => {
+ return (
+
+ );
+});
diff --git a/src/fonts/Lineatura-Light.ttf b/src/fonts/Lineatura-Light.ttf
new file mode 100644
index 0000000..4b45d96
Binary files /dev/null and b/src/fonts/Lineatura-Light.ttf differ
diff --git a/src/fonts/Lineatura-Light.woff b/src/fonts/Lineatura-Light.woff
new file mode 100644
index 0000000..69d9fe1
Binary files /dev/null and b/src/fonts/Lineatura-Light.woff differ
diff --git a/src/fonts/Lineatura.ttf b/src/fonts/Lineatura.ttf
new file mode 100644
index 0000000..0eff2f0
Binary files /dev/null and b/src/fonts/Lineatura.ttf differ
diff --git a/src/fonts/Lineatura.woff b/src/fonts/Lineatura.woff
new file mode 100644
index 0000000..ec1c051
Binary files /dev/null and b/src/fonts/Lineatura.woff differ
diff --git a/src/index.js b/src/index.js
index 6b34db0..dea9004 100644
--- a/src/index.js
+++ b/src/index.js
@@ -1,3 +1,4 @@
+import "./App.css";
import React from "react";
import ReactDOM from "react-dom/client";
import { BrowserRouter as Router, Routes, Route, Link } from "react-router-dom";
diff --git a/src/logo.svg b/src/logo.svg
index 9dfc1c0..4e0dfce 100644
--- a/src/logo.svg
+++ b/src/logo.svg
@@ -1 +1,19 @@
-
\ No newline at end of file
+
diff --git a/src/logo_p.svg b/src/logo_p.svg
new file mode 100644
index 0000000..a7f9d52
--- /dev/null
+++ b/src/logo_p.svg
@@ -0,0 +1,19 @@
+
diff --git a/src/video.mp4 b/src/video.mp4
new file mode 100644
index 0000000..e9bcaff
Binary files /dev/null and b/src/video.mp4 differ