refactor: externalize editor upload context
This commit is contained in:
@@ -3775,6 +3775,15 @@ const SIDEBAR_TREE_JS: &str = r##"
|
||||
}
|
||||
|
||||
function resolveEditorUploadContext(detail) {
|
||||
var runtimeFn = localUploadRuntimeFunction('resolveEditorUploadContext');
|
||||
if (runtimeFn) {
|
||||
return runtimeFn(detail || {}, {
|
||||
rootSelector: EDITOR_UPLOAD_ROOT_SELECTOR,
|
||||
editorUploadRootFromElement: editorUploadRootFromElement,
|
||||
currentDocumentId: currentDocumentId,
|
||||
resolveWorkspaceId: resolveWorkspaceId
|
||||
});
|
||||
}
|
||||
var root = null;
|
||||
var selector = detail && detail.editorRootSelector ? String(detail.editorRootSelector) : '';
|
||||
if (selector) {
|
||||
@@ -3823,6 +3832,13 @@ const SIDEBAR_TREE_JS: &str = r##"
|
||||
}
|
||||
|
||||
function editorRootFromUploadOptions(options) {
|
||||
var runtimeFn = localUploadRuntimeFunction('editorRootFromUploadOptions');
|
||||
if (runtimeFn) {
|
||||
return runtimeFn(options || {}, {
|
||||
rootSelector: EDITOR_UPLOAD_ROOT_SELECTOR,
|
||||
editorUploadRootFromElement: editorUploadRootFromElement
|
||||
});
|
||||
}
|
||||
if (options && options.editorRoot instanceof HTMLElement) return options.editorRoot;
|
||||
if (window.__mnoteIntendedSlashRoot instanceof HTMLElement && window.__mnoteIntendedSlashRoot.isConnected) {
|
||||
return window.__mnoteIntendedSlashRoot;
|
||||
@@ -4029,6 +4045,16 @@ const SIDEBAR_TREE_JS: &str = r##"
|
||||
}
|
||||
|
||||
function openEditorUploadFilePicker(detail) {
|
||||
var runtimeFn = localUploadRuntimeFunction('openEditorUploadFilePicker');
|
||||
if (runtimeFn) {
|
||||
return runtimeFn(detail || {}, {
|
||||
rootSelector: EDITOR_UPLOAD_ROOT_SELECTOR,
|
||||
editorUploadRootFromElement: editorUploadRootFromElement,
|
||||
currentDocumentId: currentDocumentId,
|
||||
resolveWorkspaceId: resolveWorkspaceId,
|
||||
uploadFilesWithResolvedTarget: uploadFilesWithResolvedTarget
|
||||
});
|
||||
}
|
||||
var uploadContext = resolveEditorUploadContext(detail || {});
|
||||
var input = document.createElement('input');
|
||||
input.type = 'file';
|
||||
@@ -10795,12 +10821,29 @@ mod tests {
|
||||
assert!(SIDEBAR_TREE_JS.contains("refreshLocalFolderSidebarSnapshot"));
|
||||
assert!(SIDEBAR_TREE_JS.contains("wolai:local-assets-changed"));
|
||||
assert!(SIDEBAR_TREE_JS.contains("function resolveEditorUploadContext"));
|
||||
assert!(
|
||||
SIDEBAR_TREE_JS.contains("localUploadRuntimeFunction('resolveEditorUploadContext')")
|
||||
);
|
||||
assert!(
|
||||
SIDEBAR_TREE_JS.contains("localUploadRuntimeFunction('openEditorUploadFilePicker')")
|
||||
);
|
||||
assert!(SIDEBAR_TREE_JS.contains("__mnoteLastEditorUploadRoot"));
|
||||
assert!(SIDEBAR_TREE_JS.contains("data-pane-role=\"primary\""));
|
||||
assert!(SIDEBAR_TREE_JS.contains("insertUploadedAssetIntoEditor(localPayload.asset, editorRootFromUploadOptions(options))"));
|
||||
assert!(SIDEBAR_TREE_JS.contains("editorRoot: uploadContext.root"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn local_upload_runtime_contains_editor_upload_context_helpers() {
|
||||
const LOCAL_UPLOAD_RUNTIME_JS: &str =
|
||||
include_str!("../../../browser/local-upload-runtime.js");
|
||||
assert!(LOCAL_UPLOAD_RUNTIME_JS.contains("function resolveEditorUploadContext"));
|
||||
assert!(LOCAL_UPLOAD_RUNTIME_JS.contains("function editorRootFromUploadOptions"));
|
||||
assert!(LOCAL_UPLOAD_RUNTIME_JS.contains("function openEditorUploadFilePicker"));
|
||||
assert!(LOCAL_UPLOAD_RUNTIME_JS.contains("uploadFilesWithResolvedTarget"));
|
||||
assert!(LOCAL_UPLOAD_RUNTIME_JS.contains("__mnoteLastEditorUploadRoot"));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sidebar_tree_runtime_focuses_restored_local_folder_row() {
|
||||
assert!(SIDEBAR_TREE_JS.contains("applyPendingLocalFolderRestoreFocusOnce"));
|
||||
|
||||
Reference in New Issue
Block a user