source: frontend/src/Components/Resources/AddImages.js@ e6c2521

Last change on this file since e6c2521 was e6c2521, checked in by darsov2 <62809499+darsov2@…>, 6 months ago

images upload/download impl, other fixes

  • Property mode set to 100644
File size: 3.9 KB
Line 
1import React from "react";
2import {Container, Row, Modal, Image, FormGroup, FormLabel, FormControl, Button} from "react-bootstrap";
3import {useState} from "react";
4import {AiOutlinePlusCircle} from "react-icons/ai"
5import AddHotelForm from "../Forms/AddHotelForm";
6import AddRoomForm from "../Forms/AddRoomForm";
7import AddRestaurantForm from "../Forms/AddRestaurantForm";
8import AddTransportForm from "../Forms/AddTransportForm";
9import AddItemMenuForm from "../Forms/AddItemMenuForm";
10import AddRoomAvailablityForm from "../Forms/AddRoomAvailablityForm";
11import AddTableAvailablityForm from "../Forms/AddTableAvailabilityForm";
12import {FaImage} from "react-icons/fa";
13import useGet from "../Hooks/useGet";
14import useFileChange from "../Hooks/FilesUpload/useFileChange";
15
16
17const AddImages = (props) => {
18
19 const [show, setShow] = useState(false);
20 const {data, isLoading, getData, setData, setChanged} = useGet(`/${props.type}/${props.Id}/images`)
21 const { onFileChangeHandler } = useFileChange();
22 const [selectedFiles, setSelectedFiles] = useState([]);
23
24 console.log(props.Id)
25
26 const handleClose = () => setShow(false);
27 const handleShow = (e) => {
28 e.preventDefault();
29 setShow(true);
30
31 };
32
33 !isLoading && console.log(data)
34
35
36 return (<>
37 <Container onClick={handleShow}>
38 <h5>Слики</h5>
39 <div className="d-flex justify-content-center align-content-center"><FaImage size={50}
40 color="#159895"></FaImage>
41 </div>
42
43 </Container>
44
45 {handleShow && <Modal size={'xl'} show={show} onHide={handleClose}>
46 <Modal.Header closeButton>
47 <Modal.Title style={{color: "#159895"}}>
48 Слики за ресурс
49 </Modal.Title>
50 </Modal.Header>
51 <Modal.Body>
52 <Container>
53 {!isLoading && data.map((image) => {
54 let link = image.url;
55 console.log("SLIKATAAA")
56 console.log(image)
57 if (image.url.includes('Desktop')) {
58 link = 'http://localhost:8080/download?fileName=' + encodeURIComponent(image.url);
59 }
60 console.log(link)
61 return (
62 <Image src={link} thumbnail width={171} height={180}/>
63 )
64 })}
65 </Container>
66 <Container>
67 <FormGroup className="mb-3">
68 <FormLabel>Upload Images:</FormLabel>
69 <FormControl
70 type="file"
71 multiple
72 onChange={(e) => setSelectedFiles(Array.from(e.target.files))}
73 />
74 </FormGroup>
75 <Button onClick={() => {
76 // setChanged((prev) => ++prev)
77 onFileChangeHandler(selectedFiles, props.type, props.Id, setChanged)
78 // setChanged((prev) => ++prev)
79 }}>
80 Upload Files
81 </Button>
82 <Container>
83 {selectedFiles.map((file, index) => (
84 <Image
85 key={index}
86 onClick={() => {
87 }}
88 fluid
89 src={URL.createObjectURL(file)}
90 alt={`Uploaded Image ${index + 1}`}
91 />
92 ))}
93 </Container>
94 </Container>
95 </Modal.Body>
96 </Modal>}
97 </>)
98}
99
100export default AddImages;
Note: See TracBrowser for help on using the repository browser.