Treat SVG attachments as files

This commit is contained in:
Mohamed Boudra
2026-06-12 22:52:41 +07:00
parent a929ea9726
commit 2c27f21a90
10 changed files with 170 additions and 130 deletions
@@ -95,6 +95,24 @@ describe("collectImageFilesFromClipboardData", () => {
expect(files).toEqual([imagePng]);
});
it("ignores SVG clipboard files", () => {
const svgFile = new File(["<svg />"], "logo.svg", {
type: "image/svg+xml",
});
const files = collectImageFilesFromClipboardData({
items: [
createClipboardItem({
kind: "file",
type: "image/svg+xml",
file: svgFile,
}),
],
});
expect(files).toEqual([]);
});
it("returns an empty array when clipboard data is missing", () => {
expect(collectImageFilesFromClipboardData(undefined)).toEqual([]);
});
@@ -1,5 +1,6 @@
import type { AttachmentMetadata } from "@/attachments/types";
import { persistAttachmentFromBlob } from "@/attachments/service";
import { isRasterImageMimeType } from "@/attachments/file-types";
export interface ClipboardItemLike {
kind?: string;
@@ -25,7 +26,7 @@ export function collectImageFilesFromClipboardData(
if (item?.kind !== "file") {
continue;
}
if (!item.type?.startsWith("image/")) {
if (!isRasterImageMimeType(item.type)) {
continue;
}
const file = item.getAsFile?.();