mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-12-23 09:52:26 +01:00
160 lines
4.8 KiB
JavaScript
160 lines
4.8 KiB
JavaScript
import React from 'react';
|
|
import PropTypes from 'prop-types';
|
|
|
|
const Spinner = ({ className = '', color = 'var(--color-text-default)' }) => {
|
|
return (
|
|
<div className={`spinner ${className}`}>
|
|
<svg
|
|
className="lds-spinner"
|
|
width="100%"
|
|
height="100%"
|
|
xmlns="http://www.w3.org/2000/svg"
|
|
xmlnsXlink="http://www.w3.org/1999/xlink"
|
|
viewBox="0 0 100 100"
|
|
preserveAspectRatio="xMidYMid"
|
|
style={{ background: 'none' }}
|
|
>
|
|
<g transform="rotate(0 50 50)">
|
|
<rect x={45} y={0} rx={0} ry={0} width={10} height={30} fill={color}>
|
|
<animate
|
|
attributeName="opacity"
|
|
values="1;0"
|
|
dur="1s"
|
|
begin="-0.9166666666666666s"
|
|
repeatCount="indefinite"
|
|
/>
|
|
</rect>
|
|
</g>
|
|
<g transform="rotate(30 50 50)">
|
|
<rect x={45} y={0} rx={0} ry={0} width={10} height={30} fill={color}>
|
|
<animate
|
|
attributeName="opacity"
|
|
values="1;0"
|
|
dur="1s"
|
|
begin="-0.8333333333333334s"
|
|
repeatCount="indefinite"
|
|
/>
|
|
</rect>
|
|
</g>
|
|
<g transform="rotate(60 50 50)">
|
|
<rect x={45} y={0} rx={0} ry={0} width={10} height={30} fill={color}>
|
|
<animate
|
|
attributeName="opacity"
|
|
values="1;0"
|
|
dur="1s"
|
|
begin="-0.75s"
|
|
repeatCount="indefinite"
|
|
/>
|
|
</rect>
|
|
</g>
|
|
<g transform="rotate(90 50 50)">
|
|
<rect x={45} y={0} rx={0} ry={0} width={10} height={30} fill={color}>
|
|
<animate
|
|
attributeName="opacity"
|
|
values="1;0"
|
|
dur="1s"
|
|
begin="-0.6666666666666666s"
|
|
repeatCount="indefinite"
|
|
/>
|
|
</rect>
|
|
</g>
|
|
<g transform="rotate(120 50 50)">
|
|
<rect x={45} y={0} rx={0} ry={0} width={10} height={30} fill={color}>
|
|
<animate
|
|
attributeName="opacity"
|
|
values="1;0"
|
|
dur="1s"
|
|
begin="-0.5833333333333334s"
|
|
repeatCount="indefinite"
|
|
/>
|
|
</rect>
|
|
</g>
|
|
<g transform="rotate(150 50 50)">
|
|
<rect x={45} y={0} rx={0} ry={0} width={10} height={30} fill={color}>
|
|
<animate
|
|
attributeName="opacity"
|
|
values="1;0"
|
|
dur="1s"
|
|
begin="-0.5s"
|
|
repeatCount="indefinite"
|
|
/>
|
|
</rect>
|
|
</g>
|
|
<g transform="rotate(180 50 50)">
|
|
<rect x={45} y={0} rx={0} ry={0} width={10} height={30} fill={color}>
|
|
<animate
|
|
attributeName="opacity"
|
|
values="1;0"
|
|
dur="1s"
|
|
begin="-0.4166666666666667s"
|
|
repeatCount="indefinite"
|
|
/>
|
|
</rect>
|
|
</g>
|
|
<g transform="rotate(210 50 50)">
|
|
<rect x={45} y={0} rx={0} ry={0} width={10} height={30} fill={color}>
|
|
<animate
|
|
attributeName="opacity"
|
|
values="1;0"
|
|
dur="1s"
|
|
begin="-0.3333333333333333s"
|
|
repeatCount="indefinite"
|
|
/>
|
|
</rect>
|
|
</g>
|
|
<g transform="rotate(240 50 50)">
|
|
<rect x={45} y={0} rx={0} ry={0} width={10} height={30} fill={color}>
|
|
<animate
|
|
attributeName="opacity"
|
|
values="1;0"
|
|
dur="1s"
|
|
begin="-0.25s"
|
|
repeatCount="indefinite"
|
|
/>
|
|
</rect>
|
|
</g>
|
|
<g transform="rotate(270 50 50)">
|
|
<rect x={45} y={0} rx={0} ry={0} width={10} height={30} fill={color}>
|
|
<animate
|
|
attributeName="opacity"
|
|
values="1;0"
|
|
dur="1s"
|
|
begin="-0.16666666666666666s"
|
|
repeatCount="indefinite"
|
|
/>
|
|
</rect>
|
|
</g>
|
|
<g transform="rotate(300 50 50)">
|
|
<rect x={45} y={0} rx={0} ry={0} width={10} height={30} fill={color}>
|
|
<animate
|
|
attributeName="opacity"
|
|
values="1;0"
|
|
dur="1s"
|
|
begin="-0.08333333333333333s"
|
|
repeatCount="indefinite"
|
|
/>
|
|
</rect>
|
|
</g>
|
|
<g transform="rotate(330 50 50)">
|
|
<rect x={45} y={0} rx={0} ry={0} width={10} height={30} fill={color}>
|
|
<animate
|
|
attributeName="opacity"
|
|
values="1;0"
|
|
dur="1s"
|
|
begin="0s"
|
|
repeatCount="indefinite"
|
|
/>
|
|
</rect>
|
|
</g>
|
|
</svg>
|
|
</div>
|
|
);
|
|
};
|
|
|
|
Spinner.propTypes = {
|
|
className: PropTypes.string,
|
|
color: PropTypes.string,
|
|
};
|
|
|
|
export default Spinner;
|