mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-08-11 14:08:55 +08:00
chore: merge blocksuite source code (#9213)
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
import { signal } from '@preact/signals-core';
|
||||
|
||||
interface Observable<T> {
|
||||
subscribe(observer: (value: T) => void): Unsubscribable;
|
||||
}
|
||||
|
||||
interface Unsubscribable {
|
||||
unsubscribe(): void;
|
||||
}
|
||||
|
||||
export function createSignalFromObservable<T>(
|
||||
observable$: Observable<T>,
|
||||
initValue: T
|
||||
) {
|
||||
const newSignal = signal(initValue);
|
||||
const subscription = observable$.subscribe(value => {
|
||||
newSignal.value = value;
|
||||
});
|
||||
return {
|
||||
signal: newSignal,
|
||||
cleanup: () => subscription.unsubscribe(),
|
||||
};
|
||||
}
|
||||
|
||||
export { type Signal } from '@preact/signals-core';
|
||||
Reference in New Issue
Block a user