Proyectos de Subversion LeadersLinked - Backend

Rev

Rev 11347 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
11347 nelberth 1
import React, { useEffect, useState } from "react";
2
 
3
import styles from "./fileModal.module.scss";
4
 
15925 stevensc 5
const FileModal = ({ file, onCancel, onSend }) => {
11347 nelberth 6
  const [fileUrl, setFileUrl] = useState("");
7
 
8
  useEffect(() => {
9
    const reader = new FileReader();
15925 stevensc 10
    reader.onloadend = () => setFileUrl(reader.result);
11347 nelberth 11
    reader.readAsDataURL(file);
12
  }, []);
13
 
14
  const filePreview = () => {
15
    switch (file.type) {
16
      case "video/mp4":
17
      case "video/mpeg":
18
      case "video/webm":
19
        return (
20
          <video
21
            className={styles.file}
22
            src={fileUrl}
23
            muted
24
            autoPlay
25
            controls
26
          ></video>
27
        );
28
      case "image/png":
29
      case "image/jpeg":
30
      case "image/jpg":
31
        return (
32
          <img className={styles.file} src={fileUrl} alt="uploaded-image" />
33
        );
34
      case "application/pdf":
35
        return (
36
          <object
37
            className={styles.file}
38
            data={fileUrl}
39
            type="application/pdf"
40
          ></object>
41
        );
42
      default:
43
        break;
44
    }
45
  };
46
 
47
  return (
15925 stevensc 48
    <div className={styles.file_modal}>
11347 nelberth 49
      {fileUrl && filePreview()}
15925 stevensc 50
      <div className={styles.buttons_container}>
51
        <button className="btn btn-primary" onClick={onSend}>
52
          Enviar
53
        </button>
54
        <button className="btn btn-secondary" onClick={onCancel}>
11347 nelberth 55
          Cancelar
56
        </button>
57
      </div>
58
    </div>
59
  );
60
};
61
 
62
export default FileModal;