fix: stabilize local attachment icons and office proxy urls
This commit is contained in:
@@ -219,13 +219,18 @@ export const createSidebarAttachmentOpenRuntime = (dependencies = {}) => {
|
||||
|| isOfficeFileName(fileName)
|
||||
|| Boolean(localFilePath);
|
||||
if (!shouldEnhance) return;
|
||||
link.setAttribute('data-mnote-attachment-link', 'true');
|
||||
var assetId = params.get('assetId') || link.getAttribute('data-asset-id') || (localFilePath ? 'local-file:' + localFilePath : '');
|
||||
if (assetId) link.setAttribute('data-asset-id', assetId);
|
||||
attachmentClassForFileName(fileName).split(/\s+/).forEach(function(name) {
|
||||
if (name) link.classList.add(name);
|
||||
});
|
||||
link.setAttribute('target', '_blank');
|
||||
link.setAttribute('rel', 'noopener noreferrer nofollow');
|
||||
if (localFilePath && !isOnlyOfficeAttachmentHref(href)) {
|
||||
void refreshLocalAttachmentExistence(link);
|
||||
return;
|
||||
}
|
||||
link.setAttribute('data-mnote-attachment-link', 'true');
|
||||
var assetId = params.get('assetId') || link.getAttribute('data-asset-id') || (localFilePath ? 'local-file:' + localFilePath : '');
|
||||
if (assetId) link.setAttribute('data-asset-id', assetId);
|
||||
if (isOnlyOfficeAttachmentHref(href)) {
|
||||
link.setAttribute('href', buildOnlyOfficeOpenPath({
|
||||
fileUrl: params.get('fileUrl') || '',
|
||||
@@ -237,11 +242,6 @@ export const createSidebarAttachmentOpenRuntime = (dependencies = {}) => {
|
||||
mode: params.get('mode') || 'view'
|
||||
}));
|
||||
}
|
||||
attachmentClassForFileName(fileName).split(/\s+/).forEach(function(name) {
|
||||
if (name) link.classList.add(name);
|
||||
});
|
||||
link.setAttribute('target', '_blank');
|
||||
link.setAttribute('rel', 'noopener noreferrer nofollow');
|
||||
void hydrateEditorAttachmentMeta(link);
|
||||
}
|
||||
|
||||
@@ -253,6 +253,12 @@ export const createSidebarAttachmentOpenRuntime = (dependencies = {}) => {
|
||||
observeEditorAttachmentRoots();
|
||||
enhanceEditorAttachmentLinks();
|
||||
};
|
||||
var attachmentInitialEnhanceAttempts = 0;
|
||||
var attachmentInitialEnhanceTimer = window.setInterval(function() {
|
||||
attachmentInitialEnhanceAttempts += 1;
|
||||
enhanceEditorAttachmentLinks();
|
||||
if (attachmentInitialEnhanceAttempts >= 120) window.clearInterval(attachmentInitialEnhanceTimer);
|
||||
}, 500);
|
||||
|
||||
function ensureAttachmentActions() {
|
||||
var existing = document.querySelector('[data-testid="mnote-attachment-actions"]');
|
||||
@@ -600,6 +606,26 @@ export const createSidebarAttachmentOpenRuntime = (dependencies = {}) => {
|
||||
window.__mnoteEnhanceEditorAttachmentLinks();
|
||||
scheduleEditorAttachmentEnhance();
|
||||
});
|
||||
[
|
||||
'mnote:leptos-tiptap-spike:ready',
|
||||
'mnote:leptos-tiptap-spike:change',
|
||||
'mnote:leptos-tiptap-spike:state'
|
||||
].forEach(function(eventName) {
|
||||
window.addEventListener(eventName, function() {
|
||||
enhanceEditorAttachmentLinks();
|
||||
observeEditorAttachmentRoots();
|
||||
window.setTimeout(function() {
|
||||
enhanceEditorAttachmentLinks();
|
||||
observeEditorAttachmentRoots();
|
||||
}, 120);
|
||||
}, true);
|
||||
});
|
||||
[120, 500, 1200, 2500].forEach(function(delayMs) {
|
||||
window.setTimeout(function() {
|
||||
enhanceEditorAttachmentLinks();
|
||||
observeEditorAttachmentRoots();
|
||||
}, delayMs);
|
||||
});
|
||||
|
||||
function interceptEditorAttachmentLink(event) {
|
||||
var editorAttachmentLink = closestAction(event.target, '.editor-surface .ProseMirror a[data-mnote-attachment-link="true"], .editor-surface .ProseMirror a.mnote-uploaded-attachment-row, .editor-surface .ProseMirror a[href*="/api/local-folder/files/open"]');
|
||||
|
||||
Reference in New Issue
Block a user