1. /**
    
  2.  * Copyright (c) Meta Platforms, Inc. and affiliates.
    
  3.  *
    
  4.  * This source code is licensed under the MIT license found in the
    
  5.  * LICENSE file in the root directory of this source tree.
    
  6.  *
    
  7.  * @flow
    
  8.  */
    
  9. 
    
  10. import * as React from 'react';
    
  11. import styles from './LoadingAnimation.css';
    
  12. 
    
  13. type Props = {
    
  14.   className?: string,
    
  15. };
    
  16. 
    
  17. export default function LoadingAnimation({className = ''}: Props): React.Node {
    
  18.   return (
    
  19.     <svg
    
  20.       xmlns="http://www.w3.org/2000/svg"
    
  21.       className={`${styles.Icon} ${className}`}
    
  22.       width="24"
    
  23.       height="24"
    
  24.       viewBox="0 0 100 100">
    
  25.       <path d="M0 0h100v100H0z" fill="none" />
    
  26.       <circle fill="currentColor" stroke="none" cx="20" cy="50" r="10">
    
  27.         <animate
    
  28.           attributeName="opacity"
    
  29.           dur="1s"
    
  30.           values="0;1;0"
    
  31.           repeatCount="indefinite"
    
  32.           begin="0.1"
    
  33.         />
    
  34.       </circle>
    
  35.       <circle fill="currentColor" stroke="none" cx="50" cy="50" r="10">
    
  36.         <animate
    
  37.           attributeName="opacity"
    
  38.           dur="1s"
    
  39.           values="0;1;0"
    
  40.           repeatCount="indefinite"
    
  41.           begin="0.2"
    
  42.         />
    
  43.       </circle>
    
  44.       <circle fill="currentColor" stroke="none" cx="80" cy="50" r="10">
    
  45.         <animate
    
  46.           attributeName="opacity"
    
  47.           dur="1s"
    
  48.           values="0;1;0"
    
  49.           repeatCount="indefinite"
    
  50.           begin="0.3"
    
  51.         />
    
  52.       </circle>
    
  53.     </svg>
    
  54.   );
    
  55. }