mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-01 01:29:31 +08:00
feat(core): add user list service for blocksuite (#10627)
This commit is contained in:
@@ -19,6 +19,7 @@ import { FeatureFlagService } from '@affine/core/modules/feature-flag';
|
||||
import { JournalService } from '@affine/core/modules/journal';
|
||||
import { toURLSearchParams } from '@affine/core/modules/navigation';
|
||||
import { PeekViewService } from '@affine/core/modules/peek-view/services/peek-view';
|
||||
import { MemberSearchService } from '@affine/core/modules/permissions';
|
||||
import { WorkspaceService } from '@affine/core/modules/workspace';
|
||||
import track from '@affine/track';
|
||||
import {
|
||||
@@ -69,6 +70,7 @@ import {
|
||||
type ReferenceReactRenderer,
|
||||
} from '../extensions/reference-renderer';
|
||||
import { patchSideBarService } from '../extensions/side-bar-service';
|
||||
import { patchUserListExtensions } from '../extensions/user-list';
|
||||
import { BiDirectionalLinkPanel } from './bi-directional-link-panel';
|
||||
import { BlocksuiteEditorJournalDocTitle } from './journal-doc-title';
|
||||
import { StarterBar } from './starter-bar';
|
||||
@@ -90,6 +92,7 @@ const usePatchSpecs = (mode: DocMode) => {
|
||||
editorService,
|
||||
workspaceService,
|
||||
featureFlagService,
|
||||
memberSearchService,
|
||||
} = useServices({
|
||||
PeekViewService,
|
||||
DocService,
|
||||
@@ -97,6 +100,7 @@ const usePatchSpecs = (mode: DocMode) => {
|
||||
WorkspaceService,
|
||||
EditorService,
|
||||
FeatureFlagService,
|
||||
MemberSearchService,
|
||||
});
|
||||
const framework = useFramework();
|
||||
const referenceRenderer: ReferenceReactRenderer = useMemo(() => {
|
||||
@@ -151,6 +155,7 @@ const usePatchSpecs = (mode: DocMode) => {
|
||||
patchPeekViewService(peekViewService),
|
||||
patchOpenDocExtension(),
|
||||
EdgelessClipboardWatcher,
|
||||
patchUserListExtensions(memberSearchService),
|
||||
patchDocUrlExtensions(framework),
|
||||
patchQuickSearchService(framework),
|
||||
patchSideBarService(framework),
|
||||
@@ -173,18 +178,19 @@ const usePatchSpecs = (mode: DocMode) => {
|
||||
|
||||
return builder.value;
|
||||
}, [
|
||||
framework,
|
||||
mode,
|
||||
enableAI,
|
||||
reactToLit,
|
||||
referenceRenderer,
|
||||
confirmModal,
|
||||
peekViewService,
|
||||
memberSearchService,
|
||||
docService,
|
||||
docsService,
|
||||
editorService,
|
||||
framework,
|
||||
peekViewService,
|
||||
reactToLit,
|
||||
referenceRenderer,
|
||||
featureFlagService,
|
||||
enableAI,
|
||||
enableTurboRenderer,
|
||||
featureFlagService.flags.enable_pdf_embed_preview.value,
|
||||
]);
|
||||
|
||||
return [
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
import type { MemberSearchService } from '@affine/core/modules/permissions';
|
||||
import { UserListServiceExtension } from '@blocksuite/affine/blocks';
|
||||
|
||||
export function patchUserListExtensions(memberSearch: MemberSearchService) {
|
||||
return UserListServiceExtension({
|
||||
// eslint-disable-next-line rxjs/finnish
|
||||
hasMore$: memberSearch.hasMore$.signal,
|
||||
loadMore() {
|
||||
memberSearch.loadMore();
|
||||
},
|
||||
search(keyword) {
|
||||
memberSearch.search(keyword);
|
||||
},
|
||||
// eslint-disable-next-line rxjs/finnish
|
||||
users$: memberSearch.result$.map(users =>
|
||||
users.map(u => ({
|
||||
id: u.id,
|
||||
name: u.name,
|
||||
avatar: u.avatarUrl,
|
||||
}))
|
||||
).signal,
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user