mirror of
https://github.com/toeverything/AFFiNE.git
synced 2024-12-23 21:55:02 +03:00
feat: add onScroll hook in editor, resolved #561
This commit is contained in:
parent
dd0d31e72d
commit
52e9d0b2d7
@ -11,6 +11,7 @@ import {
|
||||
type ReturnUnobserve,
|
||||
} from '@toeverything/datasource/db-service';
|
||||
import { addNewGroup } from './recast-block';
|
||||
import { HookType } from './editor';
|
||||
|
||||
interface RenderRootProps {
|
||||
editor: BlockEditor;
|
||||
@ -178,6 +179,10 @@ export const RenderRoot: FC<PropsWithChildren<RenderRootProps>> = ({
|
||||
editor.getHooks().onRootNodeDrop(event);
|
||||
};
|
||||
|
||||
const onScroll = (event: React.UIEvent) => {
|
||||
editor.getHooks().onRootNodeScroll(event);
|
||||
};
|
||||
|
||||
return (
|
||||
<RootContext.Provider value={{ editor, editorElement }}>
|
||||
<Container
|
||||
@ -197,6 +202,7 @@ export const RenderRoot: FC<PropsWithChildren<RenderRootProps>> = ({
|
||||
onDragOverCapture={onDragOverCapture}
|
||||
onDragEnd={onDragEnd}
|
||||
onDrop={onDrop}
|
||||
onScroll={onScroll}
|
||||
>
|
||||
<Content
|
||||
ref={contentRef}
|
||||
|
@ -197,4 +197,8 @@ export class Hooks implements HooksRunner, PluginHooks {
|
||||
public beforeCut(e: ClipboardEvent): void {
|
||||
this.run_hook(HookType.BEFORE_CUT, e);
|
||||
}
|
||||
|
||||
public onRootNodeScroll(e: React.UIEvent): void {
|
||||
this.run_hook(HookType.ON_ROOTNODE_SCROLL, e);
|
||||
}
|
||||
}
|
||||
|
@ -172,6 +172,7 @@ export enum HookType {
|
||||
AFTER_ON_NODE_DRAG_OVER = 'afterOnNodeDragOver',
|
||||
BEFORE_COPY = 'beforeCopy',
|
||||
BEFORE_CUT = 'beforeCut',
|
||||
ON_ROOTNODE_SCROLL = 'onRootNodeScroll',
|
||||
}
|
||||
|
||||
export interface HookBaseArgs {
|
||||
@ -231,6 +232,7 @@ export interface HooksRunner {
|
||||
) => void;
|
||||
beforeCopy: (e: ClipboardEvent) => void;
|
||||
beforeCut: (e: ClipboardEvent) => void;
|
||||
onRootNodeScroll: (e: React.UIEvent) => void;
|
||||
}
|
||||
|
||||
export type AnyFunction = (...args: any[]) => any;
|
||||
|
Loading…
Reference in New Issue
Block a user