added file upload component
This commit is contained in:
@@ -0,0 +1,51 @@
|
||||
import React, { useRef, useState } from 'react'
|
||||
|
||||
export default function AttachFile({data}) {
|
||||
|
||||
const [file, setFile] = useState('')
|
||||
|
||||
const [requestStatus, setRequestStatus] = useState({loading: false, status:false, message:''})
|
||||
|
||||
const inputFile = useRef()
|
||||
console.log('data', data.job_uid)
|
||||
|
||||
let inputs = {
|
||||
file: file,
|
||||
job_uid: data?.job_uid,
|
||||
uid: localStorage.getItem("uid"),
|
||||
member_id: localStorage.getItem("member_id"),
|
||||
sessionid: localStorage.getItem("session_token"),
|
||||
};
|
||||
|
||||
const upload = () => {
|
||||
setRequestStatus({loading: true, status:false, message:''})
|
||||
if(!file){
|
||||
setRequestStatus({loading: false, status:false, message:'Please select a file'})
|
||||
setTimeout(()=>{
|
||||
setRequestStatus({loading: false, status:false, message:''})
|
||||
}, 3000)
|
||||
return
|
||||
}
|
||||
const formData = new FormData()
|
||||
for (let input in inputs) {
|
||||
formData.append(input, inputs[input]);
|
||||
}
|
||||
|
||||
console.log('data', formData, inputs)
|
||||
inputFile.current.value = []
|
||||
inputFile.current.value = null
|
||||
setFile('')
|
||||
}
|
||||
|
||||
return (
|
||||
<div className='p-4 w-full h-full flex flex-col justify-center items-center bg-yellow-500 rounded-md'>
|
||||
<div className='w-full flex flex-col items-start gap-1 overflow-hidden'>
|
||||
<input type="file" ref={inputFile} className='file:rounded-full job-label p-1' onChange={(e) => setFile(e.target.files[0])}/>
|
||||
<div className='w-full flex gap-2 items-center'>
|
||||
<button type="button" className='custom-btn btn-gradient text-white font-medium' onClick={upload}>Upload</button>
|
||||
{requestStatus.message && <p className={`text-[10px] ${requestStatus.status ? 'text-emerald-600' : 'text-red-500'}`}>{requestStatus.message}</p>}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
Reference in New Issue
Block a user