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

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

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

    switch (props.weight) {
      case 'fill':
        path = () => (
          <>
            <path d="M240.60352,69.55179C174.33789,19.52054,81.71289,19.50492,15.416,69.53617a15.67919,15.67919,0,0,0-6.23438,10.9375,16.20384,16.20384,0,0,0,3.76563,12.28125L115.791,213.98148a16.04165,16.04165,0,0,0,12.21875,5.6875h.01562a15.846,15.846,0,0,0,12.10938-5.60938v-.00781L243.10352,92.708a16.264,16.264,0,0,0,3.73437-12.22656A15.76645,15.76645,0,0,0,240.60352,69.55179ZM25.00977,82.333h0l.01562-.01562C25.02539,82.32523,25.02539,82.32523,25.00977,82.333ZM204.48242,113.4971A127.38716,127.38716,0,0,0,187.502,102.81156c-.2539-.13575-.50781-.26953-.76562-.40235a127.88589,127.88589,0,0,0-17.78711-7.57129c-.50195-.17089-1.00781-.3164-1.51367-.48144a127.931,127.931,0,0,0-18.42188-4.5625c-.53125-.08985-1.0664-.13086-1.60156-.21387a119.8284,119.8284,0,0,0-38.80859-.00293c-.53711.083-1.07813.126-1.61524.21582a127.94763,127.94763,0,0,0-18.40039,4.55567c-.50781.165-1.01562.3125-1.51953.48437a128.124,128.124,0,0,0-17.76563,7.55762c-.26367.13672-.52343.27441-.78515.41308a127.2435,127.2435,0,0,0-16.96094,10.666l-.002.001L25.10352,82.27054c60.625-45.71875,145.26562-45.6875,205.79687.09375Z" />
          </>
        )
        break

      default:
        path = () => (
          <>
            <path
              d="M92.91969,166.06177a50.7769,50.7769,0,0,1,70.145,0"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M58.97857,132.12064a98.75415,98.75415,0,0,1,138.02724,0"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <circle cx="128" cy="200" r="12" />
          </>
        )
        break
    }

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

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

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