Browse Source

added camera

master
Danilo Di Cuia 2 years ago
parent
commit
7a0dbbd5fb
  1. 2
      src/Galleria.js
  2. 1
      src/ImageUpload.js
  3. 78
      src/index.js

2
src/Galleria.js

@ -17,7 +17,7 @@ export const Galleria = () => {
useEffect(() => { useEffect(() => {
var messagesRef = firebase.database().ref(`/messaggi/${evento}`); var messagesRef = firebase.database().ref(`/messaggi/${evento}`);
console.log(`/messaggi/${evento}`);
messagesRef.once("value", function (snapshot) { messagesRef.once("value", function (snapshot) {
const messaggiObject = snapshot.val(); const messaggiObject = snapshot.val();
const messaggi = Object.keys(messaggiObject) const messaggi = Object.keys(messaggiObject)

1
src/ImageUpload.js

@ -73,6 +73,7 @@ function ImageUpload({ onImageURLSet, onImageUploading }) {
multiple multiple
type="file" type="file"
accept="image/*" accept="image/*"
capture="camera"
onChange={handleChange} onChange={handleChange}
/> />
<label htmlFor="raised-button-file"> <label htmlFor="raised-button-file">

78
src/index.js

@ -1,7 +1,13 @@
import "./App.css"; import "./App.css";
import React, { useState } from "react"; import React, { useState } from "react";
import ReactDOM from "react-dom/client"; import ReactDOM from "react-dom/client";
import { BrowserRouter as Router, Routes, Route, Link } from "react-router-dom"; import {
BrowserRouter as Router,
Routes,
Route,
Link,
useParams,
} 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";
@ -11,6 +17,7 @@ import { Admin } from "./Admin";
import { Galleria } from "./Galleria"; import { Galleria } from "./Galleria";
import { ListaEventi } from "./ListaEventi"; import { ListaEventi } from "./ListaEventi";
import { Button } from "@mui/material"; import { Button } from "@mui/material";
import EXIF from "exif-js";
const firebaseConfig = { const firebaseConfig = {
apiKey: "AIzaSyBWE1l8WV_7eyKT-PMu0Kq2w_WiV0SUhJw", apiKey: "AIzaSyBWE1l8WV_7eyKT-PMu0Kq2w_WiV0SUhJw",
@ -27,7 +34,13 @@ const firebaseConfig = {
firebase.initializeApp(firebaseConfig); firebase.initializeApp(firebaseConfig);
firebase.analytics(); firebase.analytics();
function parseDate(s) {
var b = s.split(/\D/);
return new Date(b[0], b[1] - 1, b[2], b[3], b[4], b[5]);
}
const Upload = () => { const Upload = () => {
const { evento } = useParams();
const [uploadedFiles, setUploadedFiles] = useState([]); const [uploadedFiles, setUploadedFiles] = useState([]);
const handleUploadFiles = (files) => { const handleUploadFiles = (files) => {
@ -35,31 +48,50 @@ const Upload = () => {
function upload() { function upload() {
const image = files[index]; const image = files[index];
const uploadTask = firebase EXIF.getData(image, function () {
.storage() var time = EXIF.getTag(this, "DateTime");
.ref(`images/${image.name}`) if (time) {
.put(image, { const timestamp = new Date(parseDate(time)).getTime();
cacheControl: "public,max-age=3000000", const uploadTask = firebase
contentType: "image/jpeg", .storage()
}); .ref(`images/${evento}/${image.name}`)
.put(image, {
cacheControl: "public,max-age=3000000",
contentType: "image/jpeg",
});
uploadTask.on(
"state_changed",
(snapshot) => {
const progress = Math.round(
(snapshot.bytesTransferred / snapshot.totalBytes) * 100
);
console.log(progress);
},
(error) => {
console.log(error);
},
(d) => {
// all done
console.log(d);
// var postListRef = firebase.database().ref(`messaggi/${evento}`);
// var newPostRef = postListRef.push();
// const update = {
// id: newPostRef.key,
// timestamp,
// approvato: true,
// immagineURL: "",
// };
// newPostRef.set(update);
uploadTask.on( // if (++index < files.length) {
"state_changed", // upload();
(snapshot) => { // }
const progress = Math.round( }
(snapshot.bytesTransferred / snapshot.totalBytes) * 100
); );
console.log(progress);
},
(error) => {
console.log(error);
},
() => {
if (++index < files.length) {
upload();
}
} }
); });
} }
upload(); upload();

Loading…
Cancel
Save