import React, { memo } from 'react'; import Icon from './Icon'; import { I18n } from '../locale'; const ProgressRing = ({ radius, stroke, progress }) => { const normalizedRadius = radius - stroke * 2; const circumference = normalizedRadius * 2 * Math.PI; const strokeDashoffset = circumference - progress * circumference; return ( ); }; export default memo((props) => { const { body, loading, finished, mini, lazy, white, className = '', progress, } = props; if (!loading && !finished) { return null; } let classNameString = 'loader'; if (className) { classNameString += ` ${className}`; } if (mini) { classNameString += ' loader--mini'; } if (body) { classNameString += ' loader--body'; } if (lazy) { classNameString += ' loader--lazy'; } if (white) { classNameString += ' loader--white'; } if (!navigator.onLine) { return (

); } if (finished) { classNameString += ' loader--finished'; return (
); } if (progress !== undefined) { classNameString += ' loader--progress'; return (
); } return (
); });