fix(nbstore): adjust indexer logic (#11355)

This commit is contained in:
EYHN
2025-04-01 11:31:58 +00:00
parent cb7b5caa74
commit 521eb09a7a
3 changed files with 20 additions and 6 deletions

View File

@@ -452,10 +452,13 @@ export async function crawlingDocData({
rootYDoc: YDoc;
spaceId: string;
docId: string;
}): Promise<{
blocks: IndexerDocument<'block'>[];
preview?: string;
}> {
}): Promise<
| {
blocks: IndexerDocument<'block'>[];
preview?: string;
}
| undefined
> {
let docTitle = '';
let summaryLenNeeded = 1000;
let summary = '';
@@ -482,7 +485,7 @@ export async function crawlingDocData({
}
if (blocks.size === 0) {
return { blocks: [] };
return undefined;
}
// find the nearest block that satisfies the predicate
@@ -514,7 +517,7 @@ export async function crawlingDocData({
}
if (!rootBlockId) {
return { blocks: [] };
return undefined;
}
const queue: { parent?: string; id: string }[] = [{ id: rootBlockId }];

View File

@@ -381,6 +381,10 @@ export class IndexerSyncImpl implements IndexerSync {
spaceId: this.status.rootDocId,
docId,
});
if (!result) {
// doc is empty without root block, just skip
continue;
}
blocks = result.blocks;
preview = result.preview;
} catch (error) {

View File

@@ -1,4 +1,5 @@
import { DocsSearchService } from '@affine/core/modules/docs-search';
import { WorkspaceService } from '@affine/core/modules/workspace';
import { LiveData, useLiveData, useService } from '@toeverything/infra';
import { type ReactNode, useEffect, useMemo } from 'react';
@@ -14,6 +15,7 @@ const PagePreviewInner = ({
fallback,
}: PagePreviewProps) => {
const docSummary = useService(DocsSearchService);
const workspaceService = useService(WorkspaceService);
const summary = useLiveData(
useMemo(
() => LiveData.from(docSummary.watchDocSummary(pageId), null),
@@ -26,6 +28,11 @@ const PagePreviewInner = ({
return undo;
}, [docSummary, pageId]);
useEffect(() => {
const undo = workspaceService.workspace.engine.doc.addPriority(pageId, 10);
return undo;
}, [workspaceService, pageId]);
const res =
summary === null ? fallback : summary === '' ? emptyFallback : summary;
return res;