refactor: split sidebar page tree runtime
This commit is contained in:
@@ -130,6 +130,10 @@ pub fn build_router(state: AppState) -> Router {
|
||||
"/api/mnote-browser-runtime/sidebar-workspace-runtime.js",
|
||||
get(web_shell::sidebar_workspace_runtime_asset),
|
||||
)
|
||||
.route(
|
||||
"/api/mnote-browser-runtime/sidebar-page-tree-runtime.js",
|
||||
get(web_shell::sidebar_page_tree_runtime_asset),
|
||||
)
|
||||
.route(
|
||||
"/api/mnote-browser-runtime/sidebar-tree-live-apply-runtime.js",
|
||||
get(web_shell::sidebar_tree_live_apply_runtime_asset),
|
||||
@@ -604,6 +608,7 @@ mod tests {
|
||||
"/api/mnote-browser-runtime/filetree-keyboard-runtime.js",
|
||||
"/api/mnote-browser-runtime/sidebar-shell-runtime.js",
|
||||
"/api/mnote-browser-runtime/sidebar-workspace-runtime.js",
|
||||
"/api/mnote-browser-runtime/sidebar-page-tree-runtime.js",
|
||||
"/api/mnote-browser-runtime/sidebar-tree-live-apply-runtime.js",
|
||||
"/api/mnote-browser-runtime/sidebar-filetree-open-runtime.js",
|
||||
"/api/mnote-browser-runtime/sidebar-filetree-command-runtime.js",
|
||||
|
||||
@@ -756,6 +756,20 @@ pub async fn sidebar_workspace_runtime_asset() -> Response {
|
||||
.unwrap_or_else(|_| Response::new(Body::empty()))
|
||||
}
|
||||
|
||||
pub async fn sidebar_page_tree_runtime_asset() -> Response {
|
||||
const JS: &str = include_str!("../../browser/sidebar-page-tree-runtime.js");
|
||||
Response::builder()
|
||||
.status(StatusCode::OK)
|
||||
.header(
|
||||
header::CONTENT_TYPE,
|
||||
"application/javascript; charset=utf-8",
|
||||
)
|
||||
.header(header::CACHE_CONTROL, "no-store")
|
||||
.header(HEADER_MNOTE_WEB_OWNER, "mnote-web")
|
||||
.body(Body::from(JS))
|
||||
.unwrap_or_else(|_| Response::new(Body::empty()))
|
||||
}
|
||||
|
||||
pub async fn sidebar_tree_live_apply_runtime_asset() -> Response {
|
||||
const JS: &str = include_str!("../../browser/sidebar-tree-live-apply-runtime.js");
|
||||
Response::builder()
|
||||
|
||||
@@ -213,6 +213,8 @@ mod tests {
|
||||
include_str!("../../../browser/sidebar-shell-runtime.js");
|
||||
const SIDEBAR_WORKSPACE_RUNTIME_JS: &str =
|
||||
include_str!("../../../browser/sidebar-workspace-runtime.js");
|
||||
const SIDEBAR_PAGE_TREE_RUNTIME_JS: &str =
|
||||
include_str!("../../../browser/sidebar-page-tree-runtime.js");
|
||||
const FILETREE_CONTEXT_MENU_RUNTIME_JS: &str =
|
||||
include_str!("../../../browser/filetree-context-menu-runtime.js");
|
||||
const FILETREE_DND_RUNTIME_JS: &str = include_str!("../../../browser/filetree-dnd-runtime.js");
|
||||
@@ -247,7 +249,7 @@ mod tests {
|
||||
#[test]
|
||||
fn sidebar_tree_runtime_handles_navigation_drag_and_filetree_actions() {
|
||||
assert!(SIDEBAR_TREE_RUNTIME_JS.contains("mnoteNavigationInFlight"));
|
||||
assert!(SIDEBAR_TREE_RUNTIME_JS.contains("data-mnote-navigation-pending"));
|
||||
assert!(SIDEBAR_PAGE_TREE_RUNTIME_JS.contains("data-mnote-navigation-pending"));
|
||||
assert!(SIDEBAR_TREE_RUNTIME_JS.contains("MNOTE_SIDEBAR_TREE_MODE_KEY"));
|
||||
assert!(SIDEBAR_TREE_RUNTIME_JS.contains("MNOTE_GLOBAL_SHOW_HEADING_NUMBERS_KEY"));
|
||||
assert!(SIDEBAR_TREE_RUNTIME_JS.contains("MNOTE_LAST_CLOUD_WORKSPACE_KEY"));
|
||||
@@ -276,7 +278,7 @@ mod tests {
|
||||
assert!(SIDEBAR_TREE_RUNTIME_JS.contains("installMindmapAssetFetchObserver"));
|
||||
assert!(SIDEBAR_TREE_RUNTIME_JS.contains("parseMindmapApiTarget"));
|
||||
assert!(SIDEBAR_TREE_RUNTIME_JS.contains("data-mnote-assets-local-applied"));
|
||||
assert!(SIDEBAR_TREE_RUNTIME_JS.contains("application/x-mnote-page-tree-node"));
|
||||
assert!(SIDEBAR_PAGE_TREE_RUNTIME_JS.contains("application/x-mnote-page-tree-node"));
|
||||
assert!(SIDEBAR_TREE_RUNTIME_JS.contains("dragstart"));
|
||||
assert!(SIDEBAR_TREE_RUNTIME_JS.contains("drop"));
|
||||
assert!(SIDEBAR_TREE_RUNTIME_JS.contains("data-drop-feedback"));
|
||||
@@ -926,15 +928,14 @@ mod tests {
|
||||
assert!(SIDEBAR_TREE_RUNTIME_JS
|
||||
.contains("var localFilePath = localFilePathFromAssetId(assetId);"));
|
||||
assert!(SIDEBAR_TREE_RUNTIME_JS.contains("attachmentMetaCache[assetId] = localMeta;"));
|
||||
assert!(SIDEBAR_TREE_RUNTIME_JS.contains(
|
||||
"var pageRow = closestAction(e.target, '.tree-row[data-shell-mode=\"page\"]');"
|
||||
assert!(SIDEBAR_PAGE_TREE_RUNTIME_JS.contains(
|
||||
"var pageRow = closestAction(event.target, '.tree-row[data-shell-mode=\"page\"]');"
|
||||
));
|
||||
assert!(SIDEBAR_TREE_RUNTIME_JS
|
||||
assert!(SIDEBAR_PAGE_TREE_RUNTIME_JS
|
||||
.contains("var action = btn ? btn.getAttribute('data-rust-action') : 'open';"));
|
||||
assert!(SIDEBAR_TREE_RUNTIME_JS.contains("var openTrigger = btn || pageRow;"));
|
||||
assert!(
|
||||
SIDEBAR_TREE_RUNTIME_JS.contains("var workspaceId = resolveWorkspaceId(openTrigger);")
|
||||
);
|
||||
assert!(SIDEBAR_PAGE_TREE_RUNTIME_JS.contains("var openTrigger = btn || pageRow;"));
|
||||
assert!(SIDEBAR_PAGE_TREE_RUNTIME_JS
|
||||
.contains("var workspaceId = resolveWorkspaceId(openTrigger);"));
|
||||
assert!(SIDEBAR_TREE_LIVE_APPLY_RUNTIME_JS.contains(
|
||||
r#".tree-row[data-shell-mode="page"][data-node-id="' + escaped + '"] > .tree-link > .tree-link-title"#
|
||||
));
|
||||
|
||||
Reference in New Issue
Block a user