Fix local filetree navigation state and office proxy

This commit is contained in:
lix-2026
2026-05-26 15:52:30 +08:00
parent f961c1e2a1
commit 14fec9ef6a
2 changed files with 93 additions and 0 deletions
@@ -474,7 +474,16 @@ pub async fn page(Query(query): Query<OnlyOfficePageQuery>) -> Result<Response,
url.host = origin.host;
return url.toString();
}}
const isLocalFolderFileOpen = url.pathname === "/api/local-folder/files/open";
const isLocal = ["127.0.0.1", "localhost", "host.docker.internal"].includes(url.hostname);
if (proxyOrigin && isLocalFolderFileOpen) {{
const origin = new URL(proxyOrigin);
url.protocol = origin.protocol;
url.host = origin.host;
const proxy = new URL("/api/onlyoffice/proxy", proxyOrigin);
proxy.searchParams.set("u", base64UrlEncodeUtf8(url.toString()));
return proxy.toString();
}}
if (proxyOrigin && (isLocal || url.searchParams.has("token"))) {{
const proxy = new URL("/api/onlyoffice/proxy", proxyOrigin);
proxy.searchParams.set("u", base64UrlEncodeUtf8(url.toString()));
@@ -1827,6 +1836,11 @@ mod tests {
);
assert!(html.contains("documentUrlBase,"));
assert!(html.contains("resolvedFileUrl: fileState.resolvedFileUrl"));
assert!(html.contains(
r#"const isLocalFolderFileOpen = url.pathname === "/api/local-folder/files/open";"#
));
assert!(html.contains("if (proxyOrigin && isLocalFolderFileOpen)"));
assert!(html.contains("if (proxyOrigin && (isLocal || url.searchParams.has(\"token\")))"));
}
fn test_state(legacy_next_base_url: Option<String>) -> AppState {