fix(cli): collage presse-papiers image/fichier via clipboardData.files — #155 (partiel : logique+tests verts, e2e AppImage clipboard en attente)
(cherry picked from commit 2f39a5ce17b9895e683c0d48f0d9e034e701ed19)
This commit is contained in:
@ -268,10 +268,24 @@ async function clipboardImageToAttachment(file: File): Promise<AttachmentDraft>
|
||||
}
|
||||
|
||||
function clipboardImageFiles(event: ClipboardEvent<HTMLTextAreaElement>): File[] {
|
||||
return Array.from(event.clipboardData.items)
|
||||
const clipboardItems = event.clipboardData.items
|
||||
? Array.from(event.clipboardData.items)
|
||||
: [];
|
||||
const clipboardFiles = event.clipboardData.files
|
||||
? Array.from(event.clipboardData.files)
|
||||
: [];
|
||||
const fromItems = clipboardItems
|
||||
.filter((item) => item.kind === "file" && item.type.startsWith("image/"))
|
||||
.map((item) => item.getAsFile())
|
||||
.filter((file): file is File => Boolean(file));
|
||||
const fromFiles = clipboardFiles.filter((file) => file.type.startsWith("image/"));
|
||||
const seen = new Set<string>();
|
||||
return [...fromItems, ...fromFiles].filter((file) => {
|
||||
const key = `${file.name}\u0000${file.type}\u0000${file.size}\u0000${file.lastModified}`;
|
||||
if (seen.has(key)) return false;
|
||||
seen.add(key);
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
||||
function slashCommandPrefix(draft: string): string | null {
|
||||
|
||||
Reference in New Issue
Block a user