mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-18 02:26:21 +08:00
feat(editor): support file column and member column for database block (#10932)
close: BS-2630, BS-2631, BS-2629, BS-2632, BS-2635
This commit is contained in:
@@ -2,12 +2,13 @@ import { DebugLogger } from '@affine/debug';
|
||||
import { BlockStdScope } from '@blocksuite/affine/block-std';
|
||||
import { PageEditorBlockSpecs } from '@blocksuite/affine/extensions';
|
||||
import type { Store } from '@blocksuite/affine/store';
|
||||
import { useMemo } from 'react';
|
||||
import { useEffect, useMemo, useState } from 'react';
|
||||
import { Observable } from 'rxjs';
|
||||
|
||||
const logger = new DebugLogger('doc-info');
|
||||
|
||||
interface ReadonlySignal<T> {
|
||||
value: T;
|
||||
subscribe: (fn: (value: T) => void) => () => void;
|
||||
}
|
||||
|
||||
@@ -23,6 +24,20 @@ export function signalToObservable<T>(
|
||||
};
|
||||
});
|
||||
}
|
||||
export function useSignalValue<T>(signal: ReadonlySignal<T>): T;
|
||||
export function useSignalValue<T>(signal?: ReadonlySignal<T>): T | undefined;
|
||||
export function useSignalValue<T>(signal?: ReadonlySignal<T>): T | undefined {
|
||||
const [value, setValue] = useState<T | undefined>(signal?.value);
|
||||
useEffect(() => {
|
||||
if (signal == null) {
|
||||
return;
|
||||
}
|
||||
return signal.subscribe(value => {
|
||||
setValue(value);
|
||||
});
|
||||
}, [signal]);
|
||||
return value;
|
||||
}
|
||||
|
||||
// todo(pengx17): use rc pool?
|
||||
export function createBlockStdScope(doc: Store) {
|
||||
|
||||
@@ -68,9 +68,6 @@ export class MemberSearchService extends Service {
|
||||
}
|
||||
|
||||
search(searchText?: string) {
|
||||
if (this.searchText$.value === searchText) {
|
||||
return;
|
||||
}
|
||||
this.reset();
|
||||
this.searchText$.setValue(searchText ?? '');
|
||||
this.loadMore();
|
||||
|
||||
Reference in New Issue
Block a user