+ {files
+ .reduce(
+ (acc, current) => {
+ if (!acc.map.has(current.file_id)) {
+ acc.map.set(current.file_id, true);
+ acc.uniqueFiles.push(current);
+ }
+ return acc;
+ },
+ { map: new Map(), uniqueFiles: [] as ExtendedFile[] },
+ )
+ .uniqueFiles.map((file: ExtendedFile, index: number) => {
+ const handleDelete = () => {
+ showToast({
+ message: localize('com_ui_deleting_file'),
+ status: 'info',
+ });
+
+ if (abortUpload && file.progress < 1) {
+ abortUpload();
+ }
+
+ if (onFileRemove) {
+ onFileRemove(file.file_id);
+ } else {
+ mutateAsync({
+ files: [
+ {
+ file_id: file.file_id,
+ filepath: file.filepath || '',
+ embedded: file.embedded || false,
+ source: file.source || FileSources.local,
+ },
+ ],
+ });
+
+ setFiles((currentFiles) => {
+ const updatedFiles = new Map(currentFiles);
+ updatedFiles.delete(file.file_id);
+ if (file.temp_file_id) {
+ updatedFiles.delete(file.temp_file_id);
+ }
+ return updatedFiles;
+ });
+ }
+ };
+
+ const isImage = file.type?.startsWith('image') ?? false;
+
+ return (
+
+ {isImage ? (
+
+ ) : (
+
+ )}
+
+ );
+ })}
+
+ );
+ };
+
+ if (Wrapper) {
+ return