Fix encrypted uploads, show error

This commit is contained in:
Jon Staab
2025-08-21 16:06:14 -07:00
parent ba80ebac63
commit e4fe18df2f
+9 -5
View File
@@ -1,7 +1,7 @@
import {mount} from "svelte" import {mount} from "svelte"
import type {Writable} from "svelte/store" import type {Writable} from "svelte/store"
import {get} from "svelte/store" import {get} from "svelte/store"
import {sha256} from "@welshman/lib" import {sha256, parseJson} from "@welshman/lib"
import { import {
getTagValues, getTagValues,
encryptFile, encryptFile,
@@ -100,7 +100,9 @@ export const makeEditor = async ({
["encryption-algorithm", algorithm], ["encryption-algorithm", algorithm],
] ]
file = new File([new Blob([ciphertext])], attrs.file.name, {type: attrs.file.type}) file = new File([new Blob([ciphertext])], attrs.file.name, {
type: "application/octet-stream",
})
const server = getBlossomServer() const server = getBlossomServer()
const hashes = [await sha256(await file.arrayBuffer())] const hashes = [await sha256(await file.arrayBuffer())]
@@ -110,10 +112,12 @@ export const makeEditor = async ({
try { try {
const res = await uploadBlob(server, file, {authEvent}) const res = await uploadBlob(server, file, {authEvent})
let {uploaded, url, ...task} = await res.json() const text = await res.text()
let {uploaded, url, ...task} = parseJson(text) || {}
if (!uploaded) { if (!uploaded) {
return {error: "Server refused to process the file"} return {error: text}
} }
// Always append file extension if missing // Always append file extension if missing
@@ -137,7 +141,7 @@ export const makeEditor = async ({
}, },
onUploadError(currentEditor, task) { onUploadError(currentEditor, task) {
currentEditor.commands.removeFailedUploads() currentEditor.commands.removeFailedUploads()
pushToast({theme: "error", message: "Failed to upload file"}) pushToast({theme: "error", message: task.error})
uploading?.set(false) uploading?.set(false)
}, },
}, },