ant-design/components/_util/raf.ts

39 lines
765 B
TypeScript
Raw Normal View History

import raf from 'rc-util/lib/raf';
interface RafMap {
2018-12-07 20:02:01 +08:00
[id: number]: number;
}
let id: number = 0;
const ids: RafMap = {};
// Support call raf with delay specified frame
export default function wrapperRaf(callback: () => void, delayFrames: number = 1): number {
const myId: number = id++;
let restFrames: number = delayFrames;
function internalCallback() {
restFrames -= 1;
if (restFrames <= 0) {
callback();
2019-04-28 23:52:35 +08:00
delete ids[myId];
} else {
2019-04-28 23:52:35 +08:00
ids[myId] = raf(internalCallback);
}
}
2019-04-28 23:52:35 +08:00
ids[myId] = raf(internalCallback);
return myId;
}
2019-08-14 18:21:24 +08:00
wrapperRaf.cancel = function cancel(pid?: number) {
New Component: Typography (#14250) * text with prefix * add edit style * support editable * enhance accessibility & type experience * optimize IME case * support copy * add locale * add secondary & disabled * add ellipsis shadow text * split to 3 components * update snapshot * update desc * change lines also need update ellipsis * skip aria when is in ellipsis * add ResizeObserver in _util * update snapshot * move TestBase into test file * update test case * update doc * fix typo * important => level * use rows * update demo cols to 1 * fix cssText not work in firefox * update doc * add miss point * support extendable * update snapshot * fix doc * copyable support string * update snapshot * update doc * update doc desc * adjust style * full test * reset after test * rename * update snapshot * fix compile * adjust style * update desc * update prefixCls * update margin * adjust * nest wrap of tag content * adjust style * update comment * rm % * one more thing * tmp of measure * merge string as children * update snapshot * update testcase * remove comment * use internal variable for configProvider passing * update snapshot * use expandable instead of extendable * less variable it * update demo * update less * adjust code & mark style * remove mark padding * update measure logic * support nest element style * use childNode.textContent to fix react 15 error * update css * popout Typography * add link style * adjust doc * use ellipsis instead of rows & expandable * update doc * update doc * update doc & style * fix typo * add css ellipsis support * client render * update snapshot * enhance copyable * support onExpand * update test case * add test of css ellipsis * fix logic in react 15 * rename onChange -> onSave * use tagName of article * fix lint
2019-02-19 11:42:05 +08:00
if (pid === undefined) return;
raf.cancel(ids[pid]);
delete ids[pid];
2018-12-07 20:02:01 +08:00
};
2019-05-07 14:57:32 +08:00
wrapperRaf.ids = ids; // export this for test usage