Treat SVG attachments as files
This commit is contained in:
@@ -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?.();
|
||||
|
||||
Reference in New Issue
Block a user