Use UploadedImage to check image correctness and better error responses

This commit is contained in:
2025-04-09 22:15:12 +02:00
parent 67bc49fb21
commit 6e39b59dd5
4 changed files with 42 additions and 29 deletions

View File

@ -6,7 +6,11 @@ import { inheritHtmlElement, registerComponent } from "#core:utils/web-component
import type CodeMirror from "codemirror";
// biome-ignore lint/style/useNamingConvention: This is how they called their namespace
import EasyMDE from "easymde";
import { markdownRenderMarkdown, uploadUploadImage } from "#openapi";
import {
type UploadUploadImageErrors,
markdownRenderMarkdown,
uploadUploadImage,
} from "#openapi";
const loadEasyMde = (textarea: HTMLTextAreaElement) => {
const easymde = new EasyMDE({
@ -21,8 +25,18 @@ const loadEasyMde = (textarea: HTMLTextAreaElement) => {
file: file,
},
});
if (response.response.status !== 200) {
onError(gettext("Invalid file"));
if (!response.response.ok) {
if (response.response.status === 422) {
onError(
(response.error as UploadUploadImageErrors[422]).detail
.map((err: Record<"ctx", Record<"error", string>>) => err.ctx.error)
.join(" ; "),
);
} else if (response.response.status === 403) {
onError(gettext("Not authorized, you need to have subscribed at least once"));
} else {
onError(gettext("Could not upload image"));
}
return;
}
onSuccess(response.data.href);