package dev.inmo.postssystem.client.utils import dev.inmo.postssystem.features.files.common.FullFileInfo import dev.inmo.micro_utils.common.toArrayBuffer import io.ktor.utils.io.core.readBytes import kotlinx.browser.document import org.w3c.dom.HTMLAnchorElement import org.w3c.dom.url.URL import org.w3c.files.Blob fun triggerDownloadFile(fullFileInfo: FullFileInfo) { val hiddenElement = document.createElement("a") as HTMLAnchorElement val url = URL.createObjectURL(Blob(arrayOf(fullFileInfo.inputProvider().readBytes().toArrayBuffer()))) hiddenElement.href = url hiddenElement.target = "_blank" hiddenElement.download = fullFileInfo.name.name hiddenElement.click() }