You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
42 lines
996 B
42 lines
996 B
import { useRef, useEffect } from 'react';
|
|
export var defaultProps = {
|
|
className: '',
|
|
percent: 0,
|
|
prefixCls: 'rc-progress',
|
|
strokeColor: '#2db7f5',
|
|
strokeLinecap: 'round',
|
|
strokeWidth: 1,
|
|
style: {},
|
|
trailColor: '#D9D9D9',
|
|
trailWidth: 1
|
|
};
|
|
export var useTransitionDuration = function useTransitionDuration(percentList) {
|
|
var paths = percentList.map(function () {
|
|
return useRef();
|
|
});
|
|
var prevTimeStamp = useRef();
|
|
useEffect(function () {
|
|
var now = Date.now();
|
|
var updated = false;
|
|
Object.keys(paths).forEach(function (key) {
|
|
var path = paths[key].current;
|
|
|
|
if (!path) {
|
|
return;
|
|
}
|
|
|
|
updated = true;
|
|
var pathStyle = path.style;
|
|
pathStyle.transitionDuration = '.3s, .3s, .3s, .06s';
|
|
|
|
if (prevTimeStamp.current && now - prevTimeStamp.current < 100) {
|
|
pathStyle.transitionDuration = '0s, 0s';
|
|
}
|
|
});
|
|
|
|
if (updated) {
|
|
prevTimeStamp.current = Date.now();
|
|
}
|
|
});
|
|
return [paths];
|
|
}; |