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

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

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

    switch (props.weight) {
      case 'fill':
        path = () => (
          <>
            <path d="M59.99512,49.37646A103.57046,103.57046,0,0,1,120,24.30469V120H95.69531A103.84891,103.84891,0,0,0,59.99512,49.37646ZM48.71558,60.77637A103.54348,103.54348,0,0,0,24.30469,120H79.63257A87.91116,87.91116,0,0,0,48.71558,60.77637Zm147.2893-11.39991A103.57046,103.57046,0,0,0,136,24.30469V120h24.30469A103.84891,103.84891,0,0,1,196.00488,49.37646ZM231.69531,120a103.54348,103.54348,0,0,0-24.41089-59.22363A87.91116,87.91116,0,0,0,176.36743,120ZM24.30469,136a103.54348,103.54348,0,0,0,24.41089,59.22363A87.91116,87.91116,0,0,0,79.63257,136Zm182.97973,59.22363A103.54348,103.54348,0,0,0,231.69531,136H176.36743A87.91116,87.91116,0,0,0,207.28442,195.22363ZM59.99512,206.62354A103.57046,103.57046,0,0,0,120,231.69531V136H95.69531A103.84891,103.84891,0,0,1,59.99512,206.62354ZM160.30469,136H136v95.69531a103.57046,103.57046,0,0,0,60.00488-25.07177A103.84891,103.84891,0,0,1,160.30469,136Z" />
          </>
        )
        break

      default:
        path = () => (
          <>
            <circle
              cx="128"
              cy="128"
              r="96"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M60,60.23573A95.69771,95.69771,0,0,1,88,128a95.69767,95.69767,0,0,1-27.99925,67.76354"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M196,60.23573a96,96,0,0,0-.00072,135.52781"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <line
              x1="32"
              y1="128"
              x2="224"
              y2="128"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <line
              x1="128"
              y1="32"
              x2="128"
              y2="224"
              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} />
  }
)
