Fix tiptap selection sync and toolbar event loop
This commit is contained in:
@@ -7,6 +7,8 @@ import {
|
||||
buildDocumentQueryEnvelope,
|
||||
documentBridgeErrorResponse,
|
||||
} from "@/lib/documents/bridge";
|
||||
import type { PageSubtreeProjection } from "@/lib/documents/page-subtree";
|
||||
import { normalizeDocumentContentResponse } from "@/lib/documents/page-subtree-response";
|
||||
import {
|
||||
executeRustBridgeQueryTransport,
|
||||
resolveRustBridgeQueryPlan,
|
||||
@@ -35,6 +37,8 @@ export async function GET(request: Request) {
|
||||
content?: unknown;
|
||||
revision?: number | null;
|
||||
conflict_detection_key?: string | null;
|
||||
title?: string | null;
|
||||
page_subtree?: PageSubtreeProjection | null;
|
||||
} | null>({
|
||||
client,
|
||||
plan,
|
||||
@@ -54,16 +58,17 @@ export async function GET(request: Request) {
|
||||
);
|
||||
}
|
||||
|
||||
const normalized = normalizeDocumentContentResponse({
|
||||
documentId,
|
||||
title: typeof result.title === "string" && result.title.trim() ? result.title : null,
|
||||
payload: result,
|
||||
});
|
||||
|
||||
return NextResponse.json({
|
||||
content: result.content ?? null,
|
||||
revision:
|
||||
typeof result.revision === "number" && Number.isInteger(result.revision)
|
||||
? result.revision
|
||||
: 0,
|
||||
conflictDetectionKey:
|
||||
typeof result.conflict_detection_key === "string" && result.conflict_detection_key.trim()
|
||||
? result.conflict_detection_key
|
||||
: `${documentId}:0`,
|
||||
content: normalized.content,
|
||||
revision: normalized.revision,
|
||||
conflictDetectionKey: normalized.conflictDetectionKey,
|
||||
pageSubtree: normalized.pageSubtree,
|
||||
meta: {
|
||||
requestId: bridgeContext.requestId,
|
||||
traceId: bridgeContext.traceId,
|
||||
|
||||
Reference in New Issue
Block a user