feat: add onScroll hook in editor, resolved #561

This commit is contained in:
qishaoxuan 2022-07-27 11:00:56 +08:00
parent dd0d31e72d
commit 52e9d0b2d7
3 changed files with 12 additions and 0 deletions

View File

@ -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}

View File

@ -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);
}
}

View File

@ -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;