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