The svg spinner is displaying correctly in desktop firefox and chrome but not in chrome or firefox mobile browser. Does anyone have a solution for this?
const Spinner = () => (
<svg
xmlns="http://www.w3.org/2000/svg"
xmlnsXlink="http://www.w3.org/1999/xlink"
style={{
margin: "auto",
background: "none",
display: "block",
shapeRendering: "auto",
}}
width="120px"
height="120px"
viewBox="0 0 100 100"
preserveAspectRatio="xMidYMid"
>
<path
fill="none"
stroke="#441C55"
strokeWidth="3"
strokeDasharray="197.57347473144532 59.015453491210934"
d="M24.3 30C11.4 30 5 43.3 5 50s6.4 20 19.3 20c19.3 0 32.1-40 51.4-40 C88.6 30 95 43.3 95 50s-6.4 20-19.3 20C56.4 70 43.6 30 24.3 30z"
strokeLinecap="round"
style={{ transform: "scale(0.8)", transformOrigin: "50px 50px" }}
>
<animate
attributeName="stroke-dashoffset"
repeatCount="indefinite"
dur="1s"
keyTimes="0;1"
values="0;256.58892822265625"
></animate>
</path>
</svg>
);
export default Spinner;
This probably doesn't help (but now I tested Firefox and Chrome on Android and Safari on iOS and it works fine). Here is a slightly-cleaned-up version where I replaced some of the curves in the path with arcs.
<svg
xmlns="http://www.w3.org/2000/svg"
width="120"
style="margin: auto; display: block;"
viewBox="0 0 114 54">
<path
transform="translate(2 2)"
fill="none"
stroke="#441C55"
stroke-width="4"
stroke-dasharray="70 30"
d="M 25 0
A 1 1 0 0 0 25 50
C 55 50 55 0 85 0
A 1 1 0 0 1 85 50
C 55 50 55 0 25 0 Z"
pathLength="100"
stroke-linecap="round">
<animate
attributeName="stroke-dashoffset"
repeatCount="indefinite"
dur="1s"
keyTimes="0;1"
values="0;100"/>
</path>
</svg>