feat: fix global search empty item

This commit is contained in:
DarkSky 2022-07-27 17:31:24 +08:00
parent 6ef0e5e567
commit e273d1e606
2 changed files with 32 additions and 20 deletions

View File

@ -103,13 +103,16 @@ export const Search = (props: SearchProps) => {
result_hide: !result.length,
})}
>
{result.map(block => (
<BlockPreview
key={block.id}
block={block}
onClick={() => handle_navigate(block.id)}
/>
))}
{result
// 过滤掉空标题的文档
.filter(block => block.content)
.map(block => (
<BlockPreview
key={block.id}
block={block}
onClick={() => handle_navigate(block.id)}
/>
))}
</MuiBox>
</Box>
</TransitionsModal>

View File

@ -1,9 +1,10 @@
/* eslint-disable filename-rules/match */
import { StrictMode } from 'react';
import { HookType } from '@toeverything/framework/virgo';
import { BasePlugin } from '../base-plugin';
import { Search } from './search';
import { Search } from './Search';
import { PluginRenderRoot } from '../utils';
export class FullTextSearchPlugin extends BasePlugin {
@ -17,6 +18,13 @@ export class FullTextSearchPlugin extends BasePlugin {
this.hooks.addHook(HookType.ON_SEARCH, this.handle_search, this);
}
protected override _onRender(): void {
this.#root = new PluginRenderRoot({
name: FullTextSearchPlugin.pluginName,
render: this.editor.reactRenderRoot.render,
});
}
private unmount() {
if (this.#root) {
this.editor.setHotKeysScope();
@ -30,21 +38,22 @@ export class FullTextSearchPlugin extends BasePlugin {
this.render_search();
}
private render_search() {
this.#root = new PluginRenderRoot({
name: FullTextSearchPlugin.pluginName,
render: this.editor.reactRenderRoot.render,
});
this.#root.mount();
this.#root.render(
<StrictMode>
<Search onClose={() => this.unmount()} editor={this.editor} />
</StrictMode>
);
if (this.#root) {
this.#root.mount();
this.#root.render(
<StrictMode>
<Search
onClose={() => this.unmount()}
editor={this.editor}
/>
</StrictMode>
);
}
}
public renderSearch() {
this.render_search();
}
}
export type { QueryResult } from './search';
export { QueryBlocks } from './search';
export type { QueryResult } from './Search';
export { QueryBlocks } from './Search';