/* GENERATED FILE */
import React, { forwardRef } from 'react'

import type {
  IconWeight,
  IconProps,
  PaintFunction,
  Icon,
  RenderFunction,
} from '../lib'
import { renderPathForWeight, useIconContext, IconBase } from '../lib'

export const IconVolleyball: Icon = forwardRef<SVGSVGElement, IconProps>(
  (props, ref) => {
    let path: PaintFunction

    switch (props.weight) {
      case 'fill':
        path = () => (
          <>
            <path d="M231.97754,127.55615A103.99094,103.99094,0,1,0,37.93311,180a105.72542,105.72542,0,0,0,6.46447,9.87012,7.95641,7.95641,0,0,0,.54554.74316,103.21348,103.21348,0,0,0,56.1394,37.84277,104.55745,104.55745,0,0,0,27.08643,3.58887,104.02475,104.02475,0,0,0,94.95739-62.12109,7.99045,7.99045,0,0,0,.86658-2.03223,104.79039,104.79039,0,0,0,7.97668-39.29053c.01478-.19921.0304-.39795.0304-.60107C232,127.8501,231.98572,127.7041,231.97754,127.55615ZM44.52612,155.88037A88.18268,88.18268,0,0,1,77.26184,56.11914l17.12708,29.665a104.19392,104.19392,0,0,0-49.8628,70.09619Zm32.74121,43.99121A87.25645,87.25645,0,0,1,58.90808,182.4873a88.00774,88.00774,0,0,1,43.48059-82.84716L118.76245,128Zm132.3877-39.2251a88.01249,88.01249,0,0,1-93.40991,3.71387L132.6189,136h82.96142A88.7146,88.7146,0,0,1,209.655,160.64648ZM181.36572,120a104.1963,104.1963,0,0,0-35.68689-78.15527A87.80467,87.80467,0,0,1,215.60864,120Z" />
          </>
        )
        break

      default:
        path = () => (
          <>
            <circle
              cx="128"
              cy="128"
              r="96"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <line
              x1="80"
              y1="44.86156"
              x2="128"
              y2="128"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <line
              x1="80"
              y1="211.13844"
              x2="128"
              y2="128"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <line
              x1="224"
              y1="128"
              x2="128"
              y2="128"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M116.57865,32.65643a96.043,96.043,0,0,1,56.4788,95.34363"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M51.14073,185.563a96.04294,96.04294,0,0,1,54.3306-96.58389"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M216.28063,165.7806a96.04293,96.04293,0,0,1-110.80941,1.24026"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
          </>
        )
        break
    }

    const renderPath: RenderFunction = (weight: IconWeight) =>
      renderPathForWeight(weight, path)

    const { useIconProps } = useIconContext()
    const parsedProps = useIconProps(props)

    return <IconBase ref={ref} {...parsedProps} renderPath={renderPath} />
  }
)
