61 lines
3.8 KiB
JavaScript
61 lines
3.8 KiB
JavaScript
import React from 'react';
|
|||
|
|
|
||
|
|
const LoadingIndicator = ({ height = "200px", width = "200px", expand = false }) => {
|
||
|
|
return (
|
||
|
|
<div style={expand ? { height: "100%", width: "100%" } : {}}>
|
||
|
|
<svg style={{ margin: 'auto', background: 'none', display: 'block', shapeRendering: 'auto' }} width={width} height={height} viewBox="0 0 100 100" preserveAspectRatio="xMidYMid">
|
||
|
|
<g transform="rotate(0 50 50)">
|
||
|
|
<rect x="49" y="24" rx="0" ry="0" width="2" height="12" fill="#20a5d6">
|
||
|
|
<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.9166666666666666s" repeatCount="indefinite"></animate>
|
||
|
|
</rect>
|
||
|
|
</g><g transform="rotate(30 50 50)">
|
||
|
|
<rect x="49" y="24" rx="0" ry="0" width="2" height="12" fill="#20a5d6">
|
||
|
|
<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.8333333333333334s" repeatCount="indefinite"></animate>
|
||
|
|
</rect>
|
||
|
|
</g><g transform="rotate(60 50 50)">
|
||
|
|
<rect x="49" y="24" rx="0" ry="0" width="2" height="12" fill="#20a5d6">
|
||
|
|
<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.75s" repeatCount="indefinite"></animate>
|
||
|
|
</rect>
|
||
|
|
</g><g transform="rotate(90 50 50)">
|
||
|
|
<rect x="49" y="24" rx="0" ry="0" width="2" height="12" fill="#20a5d6">
|
||
|
|
<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.6666666666666666s" repeatCount="indefinite"></animate>
|
||
|
|
</rect>
|
||
|
|
</g><g transform="rotate(120 50 50)">
|
||
|
|
<rect x="49" y="24" rx="0" ry="0" width="2" height="12" fill="#20a5d6">
|
||
|
|
<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.5833333333333334s" repeatCount="indefinite"></animate>
|
||
|
|
</rect>
|
||
|
|
</g><g transform="rotate(150 50 50)">
|
||
|
|
<rect x="49" y="24" rx="0" ry="0" width="2" height="12" fill="#20a5d6">
|
||
|
|
<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.5s" repeatCount="indefinite"></animate>
|
||
|
|
</rect>
|
||
|
|
</g><g transform="rotate(180 50 50)">
|
||
|
|
<rect x="49" y="24" rx="0" ry="0" width="2" height="12" fill="#20a5d6">
|
||
|
|
<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.4166666666666667s" repeatCount="indefinite"></animate>
|
||
|
|
</rect>
|
||
|
|
</g><g transform="rotate(210 50 50)">
|
||
|
|
<rect x="49" y="24" rx="0" ry="0" width="2" height="12" fill="#20a5d6">
|
||
|
|
<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.3333333333333333s" repeatCount="indefinite"></animate>
|
||
|
|
</rect>
|
||
|
|
</g><g transform="rotate(240 50 50)">
|
||
|
|
<rect x="49" y="24" rx="0" ry="0" width="2" height="12" fill="#20a5d6">
|
||
|
|
<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.25s" repeatCount="indefinite"></animate>
|
||
|
|
</rect>
|
||
|
|
</g><g transform="rotate(270 50 50)">
|
||
|
|
<rect x="49" y="24" rx="0" ry="0" width="2" height="12" fill="#20a5d6">
|
||
|
|
<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.16666666666666666s" repeatCount="indefinite"></animate>
|
||
|
|
</rect>
|
||
|
|
</g><g transform="rotate(300 50 50)">
|
||
|
|
<rect x="49" y="24" rx="0" ry="0" width="2" height="12" fill="#20a5d6">
|
||
|
|
<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="-0.08333333333333333s" repeatCount="indefinite"></animate>
|
||
|
|
</rect>
|
||
|
|
</g><g transform="rotate(330 50 50)">
|
||
|
|
<rect x="49" y="24" rx="0" ry="0" width="2" height="12" fill="#20a5d6">
|
||
|
|
<animate attributeName="opacity" values="1;0" keyTimes="0;1" dur="1s" begin="0s" repeatCount="indefinite"></animate>
|
||
|
|
</rect>
|
||
|
|
</g>
|
||
|
|
</svg>
|
||
|
|
</div>
|
||
|
|
);
|
||
|
|
};
|
||
|
|
|
||
|
|
export default LoadingIndicator;
|