import React, { useState } from "react";
import firebase from "firebase/app";
import "firebase/storage";
import { Stack } from "@mui/system";
import { Button } from "@mui/material";
const IDLE = 0;
const IMAGE_SET = 1;
const UPLOADING = 2;
const DONE = 3;
function ImageUpload({ onImageURLSet }) {
const [state, setState] = useState();
const [image, setImage] = useState(null);
const [imageUrl, setImageUrl] = useState("");
const [progress, setProgress] = useState(0);
const handleChange = (e) => {
if (e.target.files[0]) {
// setState(1);
let image = e.target.files[0];
const uploadTask = firebase
.storage()
.ref(`images/${image.name}`)
.put(image);
setState(UPLOADING);
uploadTask.on(
"state_changed",
(snapshot) => {
const progress = Math.round(
(snapshot.bytesTransferred / snapshot.totalBytes) * 100
);
setProgress(progress);
},
(error) => {
console.log(error);
},
() => {
firebase
.storage()
.ref("images")
.child(image.name)
.getDownloadURL()
.then((url) => {
setImageUrl(url);
setProgress(0);
setImage(null);
onImageURLSet(url);
setState(3);
});
}
);
}
};
let componente;
switch (state) {
default:
case IDLE:
componente = (
<>
>
);
break;
case IMAGE_SET:
componente = (