store files only locally

This commit is contained in:
Zhora Shalyapin 2024-12-12 15:31:31 +00:00
parent c33e506078
commit 47acab8944

20
main.js
View File

@ -184,15 +184,14 @@
return el return el
} }
function handleFiles() { function makeHandleFilesFunc() {
let storedFiles = []
return function() {
let dt = new DataTransfer() let dt = new DataTransfer()
let storageLabel = `files-${this.dataset.index}` if (storedFiles.length) {
for (const oldFile of storedFiles) {
let storedFiles = sessionStorage.getItem(storageLabel)
if (storedFiles) {
let oldFiles = JSON.parse(sessionStorage.getItem(storageLabel))
for (const oldFile of oldFiles) {
let oldFileObj = dataURLtoFile(oldFile.data, oldFile.name) let oldFileObj = dataURLtoFile(oldFile.data, oldFile.name)
dt.items.add(oldFileObj) dt.items.add(oldFileObj)
} }
@ -230,9 +229,7 @@
if (!confirm("Точно?")) return if (!confirm("Точно?")) return
let storedFiles = JSON.parse(sessionStorage.getItem(storageLabel)) ?? []
storedFiles.splice(storedFiles.length - this.files.length + index, 1) storedFiles.splice(storedFiles.length - this.files.length + index, 1)
sessionStorage.setItem(storageLabel, JSON.stringify(storedFiles))
let rdt = new DataTransfer() let rdt = new DataTransfer()
for (const file of this.files) { for (const file of this.files) {
@ -255,15 +252,14 @@
displayedFile.src = e.target.result displayedFile.src = e.target.result
downloadLink.setAttribute("href", displayedFile.src) downloadLink.setAttribute("href", displayedFile.src)
let storedFiles = JSON.parse(sessionStorage.getItem(storageLabel)) ?? []
storedFiles.push({data: displayedFile.src, name: file.name}) storedFiles.push({data: displayedFile.src, name: file.name})
sessionStorage.setItem(storageLabel, JSON.stringify(storedFiles))
} }
reader.readAsDataURL(file) reader.readAsDataURL(file)
} }
this.files = dt.files this.files = dt.files
} }
}
let prettifyFiles = (function() { let prettifyFiles = (function() {
var executed = false var executed = false
@ -285,7 +281,7 @@
fileListContainer.classList.add("file-list-container") fileListContainer.classList.add("file-list-container")
element.parentElement.parentElement.appendChild(fileListContainer) element.parentElement.parentElement.appendChild(fileListContainer)
element.addEventListener("change", handleFiles, false) element.addEventListener("change", makeHandleFilesFunc(), false)
}) })
moveFileInputValues(insertedFileRows) moveFileInputValues(insertedFileRows)