mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-17 22:37:04 +08:00
fix(nbstore): adjust indexer logic (#11355)
This commit is contained in:
@@ -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 }];
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user