import React, { FunctionComponent, HTMLAttributes } from 'react';
import classNames from '../../lib/classNames';
function calcStrokeDashOffset(value: number, radius: number) {
const progress = value / 100;
return 2 * Math.PI * radius * (1 - progress);
}
export interface PullToRefreshSpinnerProps extends HTMLAttributes {
size?: number;
strokeWidth?: number;
on?: boolean;
progress?: number;
}
const PullToRefreshSpinner: FunctionComponent = ({
on,
progress,
size,
strokeWidth,
style,
}: PullToRefreshSpinnerProps) => {
const radius = 0.5 * size - 0.5 * strokeWidth;
const dasharray = 2 * Math.PI * radius;
const circleCenter = 0.5 * size;
const dashoffset = calcStrokeDashOffset(on ? 80 : progress, radius);
return (
);
};
PullToRefreshSpinner.defaultProps = {
size: 24,
strokeWidth: 2.5,
on: true,
progress: null,
};
export default React.memo(PullToRefreshSpinner);