Skip to content

Commit 89c0dfb

Browse files
committed
remove raf
1 parent 93e538c commit 89c0dfb

File tree

4 files changed

+31
-77
lines changed

4 files changed

+31
-77
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "rc-drawer-menu",
3-
"version": "0.3.0",
3+
"version": "0.3.1",
44
"description": "drawer menu animation component for react",
55
"keywords": [
66
"react",

src/Drawer.jsx

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,7 @@ import React from 'react';
22
import ReactDOM from 'react-dom';
33
import PropTypes from 'prop-types';
44
import classnames from 'classnames';
5-
import { dataToArray, transitionEnd, getRequestAnimationFrame } from './utils';
6-
7-
const raf = getRequestAnimationFrame();
5+
import { dataToArray, transitionEnd } from './utils';
86

97
class Drawer extends React.PureComponent {
108
static propTypes = {
@@ -50,11 +48,9 @@ class Drawer extends React.PureComponent {
5048
}
5149

5250
componentDidMount() {
53-
raf(() => {
54-
this.getParentAndLevelDom();
55-
this.container = this.defaultGetContainer();
56-
this.componentDidUpdate();
57-
});
51+
this.getParentAndLevelDom();
52+
this.container = this.defaultGetContainer();
53+
this.componentDidUpdate();
5854
}
5955

6056
componentWillReceiveProps(nextProps) {

src/utils.js

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -17,31 +17,3 @@ const trnasitionStr = Object.keys(trnasitionEndObject).filter(key =>
1717
key in (document && document.body.style)
1818
)[0];
1919
export const transitionEnd = trnasitionEndObject[trnasitionStr];
20-
21-
const availablePrefixs = ['moz', 'ms', 'webkit'];
22-
23-
function requestAnimationFramePolyfill() {
24-
let lastTime = 0;
25-
return function (callback) {
26-
const currTime = new Date().getTime();
27-
const timeToCall = Math.max(0, 16 - (currTime - lastTime));
28-
const id = window.setTimeout(() => {
29-
callback(currTime + timeToCall);
30-
}, timeToCall);
31-
lastTime = currTime + timeToCall;
32-
return id;
33-
};
34-
}
35-
36-
export function getRequestAnimationFrame() {
37-
if (typeof window === 'undefined') {
38-
return () => { };
39-
}
40-
if (window.requestAnimationFrame) {
41-
return window.requestAnimationFrame.bind(window);
42-
}
43-
const prefix = availablePrefixs.filter(key => `${key}RequestAnimationFrame` in window)[0];
44-
return prefix
45-
? window[`${prefix}RequestAnimationFrame`]
46-
: requestAnimationFramePolyfill();
47-
}

tests/index.js

Lines changed: 26 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,8 @@ import React from 'react';
44
import ReactDom from 'react-dom';
55
import expect from 'expect.js';
66
import Drawer from '../src';
7-
import { getRequestAnimationFrame } from '../src/utils';
8-
97
import '../assets/index.less';
108

11-
const raf = getRequestAnimationFrame();
12-
139
describe('rc-drawer-menu', () => {
1410
let div;
1511
let instance;
@@ -64,68 +60,58 @@ describe('rc-drawer-menu', () => {
6460
return parseFloat(str);
6561
}
6662

67-
it('single drawer', (done) => {
63+
it('single drawer', () => {
6864
instance = createDrawerInstance({
6965
width: '200px',
7066
});
71-
raf(() => {
72-
const drawer = document.getElementsByClassName('drawer');
73-
console.log(drawer.length);
74-
expect(drawer.length).to.be(1);
75-
const drawerDom = drawer[0].children[1];
76-
console.log(drawerDom.style.left);
77-
expect(getFloat(drawerDom.style.left)).to.be(-200);
78-
done();
79-
});
67+
const drawer = document.getElementsByClassName('drawer');
68+
console.log(drawer.length);
69+
expect(drawer.length).to.be(1);
70+
const drawerDom = drawer[0].children[1];
71+
console.log(drawerDom.style.left);
72+
expect(getFloat(drawerDom.style.left)).to.be(-200);
8073
});
8174

82-
it('default open drawer', (done) => {
75+
it('default open drawer', () => {
8376
instance = createDrawerInstance({
8477
defaultOpen: true,
8578
level: [],
8679
iconChild: (<i className="a">a</i>),
8780
});
88-
raf(() => {
89-
const drawer = document.getElementsByClassName('drawer-content-wrapper')[0];
90-
expect(drawer.style.transform).to.eql('translateX(60vw)');
91-
done();
92-
});
81+
const drawer = document.getElementsByClassName('drawer-content-wrapper')[0];
82+
expect(drawer.style.transform).to.eql('translateX(60vw)');
9383
});
9484

9585
it('switch open drawer', (done) => {
9686
instance = createDrawerInstance({});
97-
raf(() => {
98-
const drawer = document.getElementsByClassName('drawer-content-wrapper')[0];
87+
const drawer = document.getElementsByClassName('drawer-content-wrapper')[0];
88+
console.log(drawer.style.transform);
89+
expect(drawer.style.transform).to.eql('');
90+
instance.switchMenu();
91+
setTimeout(() => {
9992
console.log(drawer.style.transform);
100-
expect(drawer.style.transform).to.eql('');
93+
expect(drawer.style.transform).to.eql('translateX(60vw)');
10194
instance.switchMenu();
10295
setTimeout(() => {
10396
console.log(drawer.style.transform);
104-
expect(drawer.style.transform).to.eql('translateX(60vw)');
105-
instance.switchMenu();
106-
setTimeout(() => {
107-
console.log(drawer.style.transform);
108-
expect(drawer.style.transform).to.eql('');
109-
done();
110-
}, 500);
97+
expect(drawer.style.transform).to.eql('');
98+
done();
11199
}, 500);
112-
});
100+
}, 500);
113101
});
114102

115103
it('icon child is array', (done) => {
116104
instance = createDrawerInstance({
117105
iconChild: [<i className="a">a</i>, <i className="b">b</i>],
118106
});
119-
raf(() => {
120-
const icon = document.getElementsByClassName('drawer-button')[0];
121-
const iconChild = icon.children[0];
122-
expect(iconChild.className).to.eql('a');
107+
const icon = document.getElementsByClassName('drawer-button')[0];
108+
const iconChild = icon.children[0];
109+
expect(iconChild.className).to.eql('a');
110+
instance.switchMenu();
111+
setTimeout(() => {
112+
expect(iconChild.className).to.eql('b');
123113
instance.switchMenu();
124-
raf(() => {
125-
expect(iconChild.className).to.eql('b');
126-
instance.switchMenu();
127-
done();
128-
});
114+
done();
129115
});
130116
});
131117
});

0 commit comments

Comments
 (0)