file attachment fix
This commit is contained in:
@@ -24,12 +24,27 @@ export const FileAttachment = Node.create<FileAttachmentOptions>({
|
||||
return {
|
||||
src: {
|
||||
default: null,
|
||||
parseHTML: element => element.getAttribute('data-src'),
|
||||
renderHTML: attributes => {
|
||||
if (!attributes.src) return {};
|
||||
return { 'data-src': attributes.src };
|
||||
},
|
||||
},
|
||||
filename: {
|
||||
default: null,
|
||||
parseHTML: element => element.getAttribute('data-filename'),
|
||||
renderHTML: attributes => {
|
||||
if (!attributes.filename) return {};
|
||||
return { 'data-filename': attributes.filename };
|
||||
},
|
||||
},
|
||||
filesize: {
|
||||
default: null,
|
||||
parseHTML: element => element.getAttribute('data-filesize'),
|
||||
renderHTML: attributes => {
|
||||
if (!attributes.filesize) return {};
|
||||
return { 'data-filesize': attributes.filesize };
|
||||
},
|
||||
}
|
||||
};
|
||||
},
|
||||
@@ -50,17 +65,17 @@ export const FileAttachment = Node.create<FileAttachmentOptions>({
|
||||
const isPdf = filename.toLowerCase().endsWith('.pdf');
|
||||
|
||||
if (isPdf) {
|
||||
return ['div', mergeAttributes(this.options.HTMLAttributes, {
|
||||
return ['div', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {
|
||||
'data-type': 'file-attachment',
|
||||
'data-src': HTMLAttributes.src,
|
||||
'data-filename': HTMLAttributes.filename,
|
||||
class: 'file-attachment-wrapper relative w-full my-4 rounded-xl overflow-hidden border border-border flex min-h-[500px] bg-muted/20 group'
|
||||
}),
|
||||
['iframe', { src: HTMLAttributes.src, class: 'w-full h-full border-0 absolute inset-0' }]
|
||||
];
|
||||
}
|
||||
|
||||
return ['div', mergeAttributes(this.options.HTMLAttributes, { 'data-type': 'file-attachment', 'data-src': HTMLAttributes.src, 'data-filename': HTMLAttributes.filename }),
|
||||
return ['div', mergeAttributes(this.options.HTMLAttributes, HTMLAttributes, {
|
||||
'data-type': 'file-attachment',
|
||||
}),
|
||||
['a', { href: HTMLAttributes.src, target: '_blank', rel: 'noopener noreferrer', class: 'file-attachment-link flex items-center p-3 gap-3 w-full h-full' },
|
||||
['div', { class: 'flex-shrink-0 flex items-center justify-center w-10 h-10 rounded-md bg-primary/10 text-primary' },
|
||||
// SVG for FileText
|
||||
@@ -116,6 +131,7 @@ export const FileAttachment = Node.create<FileAttachmentOptions>({
|
||||
wrapper.setAttribute('data-type', 'file-attachment');
|
||||
wrapper.setAttribute('data-src', node.attrs.src);
|
||||
wrapper.setAttribute('data-filename', node.attrs.filename);
|
||||
wrapper.setAttribute('data-filesize', node.attrs.filesize);
|
||||
|
||||
if (isFramable) {
|
||||
// Framed mode matching FileViewer
|
||||
|
||||
Reference in New Issue
Block a user