feat: 接入 mnote web tree shell 与主页链路整理
- 增加 mnote-web tree/command 支持与前端 MnoteWebTreeShell 集成 - 调整 sidebar、documents、runtime config 与 dev/prod server 配套逻辑 - 补充 homepage/tree shell smoke 脚本并更新 harness 进度文件
This commit is contained in:
@@ -51,7 +51,8 @@ export type SidebarDatasetListQueryResult = {
|
||||
active_workspace_id: string;
|
||||
workspaces: WorkspaceSummary[];
|
||||
documents: DocumentRecord[];
|
||||
kernel_sidebar_projection: KernelSidebarProjection;
|
||||
kernel_sidebar_projection?: KernelSidebarProjection;
|
||||
kernelSidebarProjection?: KernelSidebarProjection;
|
||||
trashed_documents: SidebarInitialData["trashedDocuments"];
|
||||
media_assets: MediaAsset[];
|
||||
trashed_media_assets: MediaAsset[];
|
||||
@@ -241,14 +242,29 @@ export function buildSidebarDatasetListQueryResult(
|
||||
export function mapSidebarDatasetListQueryResultToInitialData(
|
||||
result: SidebarDatasetListQueryResult,
|
||||
): SidebarInitialData {
|
||||
// 说明:兼容旧的 Convex `sidebar.dataset.list` 返回体。
|
||||
// 若上游暂未附带 `kernel_sidebar_projection`,这里按 documents 现算一份,
|
||||
// 避免 SSR 因契约未完全切齐而直接崩掉。
|
||||
const candidateProjection =
|
||||
result.kernel_sidebar_projection ??
|
||||
result.kernelSidebarProjection ??
|
||||
null;
|
||||
const kernelSidebarProjection =
|
||||
candidateProjection &&
|
||||
typeof candidateProjection === "object" &&
|
||||
Array.isArray(candidateProjection.items) &&
|
||||
Array.isArray(candidateProjection.edges)
|
||||
? candidateProjection
|
||||
: buildKernelSidebarProjection(result.documents ?? []);
|
||||
|
||||
return {
|
||||
activeWorkspaceId: result.active_workspace_id,
|
||||
workspaces: [...result.workspaces],
|
||||
documents: [...result.documents],
|
||||
kernelSidebarProjection: result.kernel_sidebar_projection,
|
||||
kernelSidebarProjection,
|
||||
kernelSidebarTree: buildSidebarTreeFromKernelProjection({
|
||||
records: result.documents,
|
||||
projection: result.kernel_sidebar_projection,
|
||||
projection: kernelSidebarProjection,
|
||||
}),
|
||||
trashedDocuments: [...result.trashed_documents],
|
||||
trashedMediaAssets: [...result.trashed_media_assets],
|
||||
|
||||
Reference in New Issue
Block a user