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()
}
