From 80be82af6a4db316a0171ef75c13900a5c782aad Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=9F=8E=E5=8D=B1?= Date: Thu, 27 Oct 2022 20:26:09 +0800 Subject: [PATCH] feat: use "ric-shim" replace "window.requestIdleCallback" fix #829 --- packages/designer/package.json | 1 + packages/designer/src/designer/offset-observer.ts | 7 ++++--- packages/plugin-outline-pane/package.json | 3 ++- packages/plugin-outline-pane/src/main.ts | 7 ++++--- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/packages/designer/package.json b/packages/designer/package.json index 3f47ad050..232b541e8 100644 --- a/packages/designer/package.json +++ b/packages/designer/package.json @@ -24,6 +24,7 @@ "enzyme-adapter-react-16": "^1.15.5", "react": "^16", "react-dom": "^16.7.0", + "ric-shim": "^1.0.1", "semver": "^7.3.5", "zen-logger": "^1.1.0" }, diff --git a/packages/designer/src/designer/offset-observer.ts b/packages/designer/src/designer/offset-observer.ts index fde87e1ff..830783c00 100644 --- a/packages/designer/src/designer/offset-observer.ts +++ b/packages/designer/src/designer/offset-observer.ts @@ -1,3 +1,4 @@ +import requestIdleCallback, { cancelIdleCallback } from 'ric-shim'; import { obx, computed, makeObservable } from '@alilc/lowcode-editor-core'; import { uniqueId } from '@alilc/lowcode-utils'; import { INodeSelector, IViewport } from '../simulator'; @@ -136,7 +137,7 @@ export class OffsetObserver { this._bottom = rect.bottom; this.hasOffset = true; } - this.pid = (window as any).requestIdleCallback(compute); + this.pid = requestIdleCallback(compute); pid = this.pid; }; @@ -145,13 +146,13 @@ export class OffsetObserver { // try first compute(); // try second, ensure the dom mounted - this.pid = (window as any).requestIdleCallback(compute); + this.pid = requestIdleCallback(compute); pid = this.pid; } purge() { if (this.pid) { - (window as any).cancelIdleCallback(this.pid); + cancelIdleCallback(this.pid); } this.pid = undefined; } diff --git a/packages/plugin-outline-pane/package.json b/packages/plugin-outline-pane/package.json index a763a50be..7d49074dc 100644 --- a/packages/plugin-outline-pane/package.json +++ b/packages/plugin-outline-pane/package.json @@ -19,7 +19,8 @@ "@alilc/lowcode-utils": "1.0.15", "classnames": "^2.2.6", "react": "^16", - "react-dom": "^16.7.0" + "react-dom": "^16.7.0", + "ric-shim": "^1.0.1" }, "devDependencies": { "@alib/build-scripts": "^0.1.18", diff --git a/packages/plugin-outline-pane/src/main.ts b/packages/plugin-outline-pane/src/main.ts index 85c4021f0..45ba0112a 100644 --- a/packages/plugin-outline-pane/src/main.ts +++ b/packages/plugin-outline-pane/src/main.ts @@ -1,3 +1,4 @@ +import requestIdleCallback, { cancelIdleCallback } from 'ric-shim'; import { computed, makeObservable, obx } from '@alilc/lowcode-editor-core'; import { Designer, @@ -495,7 +496,7 @@ export class OutlineMain implements ISensor, ITreeBoard, IScrollable { */ scrollToNode(treeNode: TreeNode, detail?: any, tryTimes = 0) { if (tryTimes < 1 && this.tryScrollAgain) { - (window as any).cancelIdleCallback(this.tryScrollAgain); + cancelIdleCallback(this.tryScrollAgain); this.tryScrollAgain = null; } if (this.sensing || !this.bounds || !this.scroller || !this.scrollTarget) { @@ -512,7 +513,7 @@ export class OutlineMain implements ISensor, ITreeBoard, IScrollable { if (!rect) { if (tryTimes < 3) { - this.tryScrollAgain = (window as any).requestIdleCallback(() => this.scrollToNode(treeNode, detail, tryTimes + 1)); + this.tryScrollAgain = requestIdleCallback(() => this.scrollToNode(treeNode, detail, tryTimes + 1)); } return; } @@ -528,7 +529,7 @@ export class OutlineMain implements ISensor, ITreeBoard, IScrollable { } // make tail scroll be sure if (tryTimes < 4) { - this.tryScrollAgain = (window as any).requestIdleCallback(() => this.scrollToNode(treeNode, detail, 4)); + this.tryScrollAgain = requestIdleCallback(() => this.scrollToNode(treeNode, detail, 4)); } }