diff --git a/apps/ligo-virgo/src/pages/workspace/docs/components/toc/TOC.tsx b/apps/ligo-virgo/src/pages/workspace/docs/components/toc/TOC.tsx index 40288ba0c2..6e416a8b6b 100644 --- a/apps/ligo-virgo/src/pages/workspace/docs/components/toc/TOC.tsx +++ b/apps/ligo-virgo/src/pages/workspace/docs/components/toc/TOC.tsx @@ -168,11 +168,7 @@ export const TOC = () => { const onClick = async (blockId?: string) => { setActiveBlockId(blockId); - await editor.scrollManager.scrollIntoViewByBlockId( - blockId, - 'smooth', - 'primary' - ); + await editor.scrollManager.scrollIntoViewByBlockId(blockId); }; return ( diff --git a/libs/components/editor-core/src/editor/scroll/scroll.ts b/libs/components/editor-core/src/editor/scroll/scroll.ts index 2a580089a3..08f2b8ec16 100644 --- a/libs/components/editor-core/src/editor/scroll/scroll.ts +++ b/libs/components/editor-core/src/editor/scroll/scroll.ts @@ -14,8 +14,6 @@ type ScrollController = { unLockScroll: () => void; }; -type ScrollPrimary = undefined | 'primary'; - export class ScrollManager { private _editor: BlockEditor; private _scrollContainer: HTMLElement; @@ -152,45 +150,23 @@ export class ScrollManager { public async scrollIntoViewByBlockId( blockId: string, - behavior: ScrollBehavior = 'smooth', - ability?: ScrollPrimary + behavior: ScrollBehavior = 'smooth' ) { const block = await this._editor.getBlockById(blockId); - await this.scrollIntoViewByBlock(block, behavior, ability); + await this.scrollIntoViewByBlock(block, behavior); } public async scrollIntoViewByBlock( block: AsyncBlock, - behavior: ScrollBehavior = 'smooth', - ability?: ScrollPrimary + behavior: ScrollBehavior = 'smooth' ) { if (!block.dom) { return console.warn(`Block is not exist.`); } /* use dom primary ability */ - if (ability === 'primary') { - block.dom.scrollIntoView({ block: 'start', behavior }); - return; - } - - const containerRect = domToRect(this._scrollContainer); - const blockRect = domToRect(block.dom); - - const blockRelativeTopToEditor = - blockRect.top - containerRect.top - containerRect.height / 4; - const blockRelativeLeftToEditor = blockRect.left - containerRect.left; - - this.scrollTo({ - left: blockRelativeLeftToEditor, - top: blockRelativeTopToEditor, - behavior, - }); - this._updateScrollInfo( - blockRelativeLeftToEditor, - blockRelativeTopToEditor - ); + block.dom.scrollIntoView({ block: 'start', behavior }); } public async keepBlockInView(