xxxxxxxxxx
useEffect(() => {
if (!selectedFile) return
let isCancelled = false
const uploadFile = async () => {
const totalSize = selectedFile.size
let uploadedSize = 0
// Calculate upload speed factor based on file size
const speedFactor = Math.max(1, totalSize / (50 * 1024 * 1024)) // Divide by 50MB to scale speed
// Adjust interval duration dynamically (smaller files upload faster)
const intervalDuration = Math.min(500, 500 * speedFactor)
const interval = setInterval(() => {
if (isCancelled) {
clearInterval(interval)
return
}
// Simulate upload progress
const increment = Math.min((1 / speedFactor) * totalSize * 0.05, totalSize - uploadedSize); // Adjusted progress
uploadedSize += increment; // Simulate 6% upload progress per interval
const progressPercentage = Math.min(
Math.ceil((uploadedSize / totalSize) * 100),
100
)
setProgress(progressPercentage)
if (progressPercentage === 100) {
clearInterval(interval)
handleUpload()
}
}, 500) // Update progress every 500ms
}
uploadFile()
return () => {
isCancelled = true
}
}, [selectedFile])
xxxxxxxxxx
.background {
background-image: url('name.jpeg');
background-repeat: no-repeat;
background-size: 100%;
}