|
|
|
@@ -0,0 +1,189 @@ |
|
|
|
import React, { useState } from "react"; |
|
|
|
import { Checkbox, FormControlLabel, MenuItem, Select } from "@mui/material"; |
|
|
|
import { useTranslation } from "react-i18next"; |
|
|
|
import uploadIcon from "../../assets/images/upload.png"; |
|
|
|
import IconButton from "../../components/IconButton/IconButton"; |
|
|
|
|
|
|
|
const FilesPage = () => { |
|
|
|
const [dropzoneActive, setDropzoneActive] = useState(false); |
|
|
|
const [pdfFile, setPdfFile] = useState(null); |
|
|
|
const [categories, setCategories] = useState([ |
|
|
|
{ id: 1, value: "a" }, |
|
|
|
{ id: 2, value: "b" }, |
|
|
|
{ id: 3, value: "c" }, |
|
|
|
{ id: 4, value: "d" }, |
|
|
|
{ id: 5, value: "e" }, |
|
|
|
{ id: 6, value: "f" }, |
|
|
|
{ id: 7, value: "g" }, |
|
|
|
{ id: 8, value: "h" }, |
|
|
|
]); |
|
|
|
const [tags, setTags] = useState([ |
|
|
|
{ id: 1, value: "a", isChecked: false }, |
|
|
|
{ id: 2, value: "a", isChecked: false }, |
|
|
|
{ id: 3, value: "a", isChecked: false }, |
|
|
|
{ id: 4, value: "a", isChecked: false }, |
|
|
|
{ id: 5, value: "a", isChecked: false }, |
|
|
|
{ id: 6, value: "a", isChecked: false }, |
|
|
|
{ id: 7, value: "a", isChecked: false }, |
|
|
|
{ id: 8, value: "a", isChecked: false }, |
|
|
|
]); |
|
|
|
const [selectedCategory, setSelectedCategory] = useState(null); |
|
|
|
const { t } = useTranslation(); |
|
|
|
|
|
|
|
console.log(selectedCategory); |
|
|
|
|
|
|
|
const handleDrop = (e) => { |
|
|
|
e.preventDefault(); |
|
|
|
const selectedFile = e.dataTransfer.files[0]; |
|
|
|
const fileName = selectedFile.name; |
|
|
|
const fileExtension = selectedFile.name.split(".").pop(); |
|
|
|
const fileSize = selectedFile.size; |
|
|
|
console.log(fileName, fileExtension, fileSize); |
|
|
|
setPdfFile(selectedFile); |
|
|
|
}; |
|
|
|
|
|
|
|
const handleChangeInputFile = (e) => { |
|
|
|
const selectedFile = e.target.files[0]; |
|
|
|
const fileName = selectedFile.name; |
|
|
|
const fileExtension = selectedFile.name.split(".").pop(); |
|
|
|
const fileSize = selectedFile.size; |
|
|
|
console.log(fileName, fileExtension, fileSize); |
|
|
|
setPdfFile(selectedFile); |
|
|
|
}; |
|
|
|
|
|
|
|
const selectCategoryHandler = (e) => { |
|
|
|
setSelectedCategory(e.target.value); |
|
|
|
setCategories((oldState) => [...oldState]); |
|
|
|
}; |
|
|
|
|
|
|
|
const onChangeTagsCheckbox = (id) => { |
|
|
|
const newArr = tags.map((x) => |
|
|
|
x.id === id ? { ...x, isChecked: !x.isChecked } : x |
|
|
|
); |
|
|
|
|
|
|
|
setTags(newArr); |
|
|
|
}; |
|
|
|
|
|
|
|
return ( |
|
|
|
<div className="files-page"> |
|
|
|
<div className="files-page-card"> |
|
|
|
<div className="files-page-card-title"> |
|
|
|
<h1>Categories</h1> |
|
|
|
</div> |
|
|
|
<div className="files-page-card-content"> |
|
|
|
<Select |
|
|
|
labelId="files-page-card-content-select" |
|
|
|
id="files-page-card-content-selectt" |
|
|
|
sx={{ width: "100%" }} |
|
|
|
onChange={selectCategoryHandler} |
|
|
|
value={selectedCategory} |
|
|
|
> |
|
|
|
{categories && |
|
|
|
categories.map((category, index) => ( |
|
|
|
<MenuItem |
|
|
|
key={index} |
|
|
|
sx={{ textAlign: "left" }} |
|
|
|
value={category.value} |
|
|
|
> |
|
|
|
{category.value} |
|
|
|
</MenuItem> |
|
|
|
))} |
|
|
|
</Select> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div className="files-page-card"> |
|
|
|
<div className="files-page-card-title"> |
|
|
|
<h1>Tags</h1> |
|
|
|
</div> |
|
|
|
<div className="files-page-card-content"> |
|
|
|
<div className="files-page-card-content-checkboxes"> |
|
|
|
{tags.map((x) => ( |
|
|
|
<FormControlLabel |
|
|
|
key={x.id} |
|
|
|
control={ |
|
|
|
<Checkbox |
|
|
|
value={x.value} |
|
|
|
checked={x.isChecked} |
|
|
|
onChange={onChangeTagsCheckbox.bind(this, x.id)} |
|
|
|
className="create-ad-second-step-checkbox" |
|
|
|
/> |
|
|
|
} |
|
|
|
label={x.value} |
|
|
|
/> |
|
|
|
))} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div className="files-page-card"> |
|
|
|
<div className="files-page-card-title"> |
|
|
|
<h1>Drag & Drop File</h1> |
|
|
|
</div> |
|
|
|
<div className="files-page-card-content"> |
|
|
|
<div |
|
|
|
className="uploadCV-input" |
|
|
|
onDragOver={(e) => { |
|
|
|
setDropzoneActive(true); |
|
|
|
e.preventDefault(); |
|
|
|
}} |
|
|
|
onDragLeave={(e) => { |
|
|
|
setDropzoneActive(false); |
|
|
|
e.preventDefault(); |
|
|
|
}} |
|
|
|
onDrop={(e) => handleDrop(e)} |
|
|
|
style={{ |
|
|
|
backgroundColor: dropzoneActive ? "#F4F4F4" : "#ffffff", |
|
|
|
}} |
|
|
|
> |
|
|
|
<div className="uploadCV-input-sub-container"> |
|
|
|
<img src={uploadIcon} /> |
|
|
|
<div className="uploadCV-input-sub-container"> |
|
|
|
{pdfFile !== null ? ( |
|
|
|
<p>{pdfFile.name}</p> |
|
|
|
) : ( |
|
|
|
<> |
|
|
|
<p> |
|
|
|
{t("ads.dragPdf1")} |
|
|
|
<label |
|
|
|
htmlFor="upload-file" |
|
|
|
style={{ |
|
|
|
cursor: "pointer", |
|
|
|
textDecoration: "underline", |
|
|
|
color: "#1E92D0", |
|
|
|
}} |
|
|
|
> |
|
|
|
{t("common.search")} |
|
|
|
</label> |
|
|
|
{t("ads.dragPdf2")} |
|
|
|
</p> |
|
|
|
<input |
|
|
|
type="file" |
|
|
|
name="photo" |
|
|
|
id="upload-file" |
|
|
|
style={{ display: "none", zIndex: -1 }} |
|
|
|
value={pdfFile} |
|
|
|
data-testid="apply-for-ad-modal-fourth-stage-pdf-input" |
|
|
|
accept=".pdf" |
|
|
|
onChange={handleChangeInputFile} |
|
|
|
/> |
|
|
|
</> |
|
|
|
)} |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
<div className="files-page-card"> |
|
|
|
<div className="files-page-card-add-button"> |
|
|
|
<IconButton className="c-btn ads-page-btn c-btn--primary add-ad-btn"> |
|
|
|
+ {t("files.addFile")} |
|
|
|
</IconButton> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
); |
|
|
|
}; |
|
|
|
|
|
|
|
export default FilesPage; |