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

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

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

    switch (props.weight) {
      case 'fill':
        path = () => (
          <>
            <path d="M239.30908,79.9873a16.03867,16.03867,0,0,0-4.22119-21.63085,184.07289,184.07289,0,0,0-214.17578,0A16.03867,16.03867,0,0,0,16.69092,79.9873h.00049l97.81,153.70166a15.99973,15.99973,0,0,0,26.99708,0l58.41259-91.79052c.01807-.0293.0376-.05811.05567-.08789ZM23.44043,75.69238ZM128,225.09912,95.54053,174.09155a36.00171,36.00171,0,1,0-37.55469-59.0144L47.40723,98.45361a135.99256,135.99256,0,0,1,161.18554,0L191.30127,125.626a35.99008,35.99008,0,0,0-38.64453,60.7268Z" />
          </>
        )
        break

      default:
        path = () => (
          <>
            <path
              d="M23.44054,75.69239a8.02578,8.02578,0,0,1,2.13281-10.834,176.07221,176.07221,0,0,1,204.85329,0,8.02577,8.02577,0,0,1,2.13281,10.834L134.74929,229.394a8,8,0,0,1-13.49858,0Z"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M36.74566,96.60039a144.01884,144.01884,0,0,1,182.50866,0"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M164.31747,182.93292a28.00353,28.00353,0,1,1,28.82269-45.29368"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M57.89918,129.84281A28.00328,28.00328,0,1,1,84,168q-.91436,0-1.81448-.05785"
              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} />
  }
)
