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

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

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

    switch (props.weight) {
      case 'fill':
        path = () => (
          <>
            <g>
              <path d="M96.58887,176.979a8.00118,8.00118,0,0,0-10.12012,5.06006C79.916,201.69775,58.57422,207.78613,46.332,209.669c1.88281-12.24854,7.97168-33.58594,27.62988-40.13819a8.00027,8.00027,0,1,0-5.06054-15.1792c-16.36035,5.45362-28.37891,18.45069-34.75782,37.58692a92.73335,92.73335,0,0,0-4.65332,26.57129,8.00041,8.00041,0,0,0,8,8,92.73569,92.73569,0,0,0,26.57129-4.65332c19.13575-6.37842,32.13282-18.39747,37.58692-34.75782A8.001,8.001,0,0,0,96.58887,176.979Z" />
              <path d="M227.6123,41.82031A15.879,15.879,0,0,0,214.17871,28.3877c-11.28613-1.68409-40.62109-2.51319-69.209,26.07324l-8.97046,8.9707H74.74512a15.90118,15.90118,0,0,0-11.31446,4.686L31.08887,100.46a16.00008,16.00008,0,0,0,8.17675,27.00244l39.53492,7.90723,41.82983,41.82959,7.90674,39.53516a15.99768,15.99768,0,0,0,27.00391,8.17578l32.34179-32.34229a15.8955,15.8955,0,0,0,4.68555-11.313V120l8.9707-8.9707C230.127,82.44141,229.29688,53.10645,227.6123,41.82031ZM74.74512,79.43164h45.25439l-39.884,39.88379-37.71216-7.542ZM176.56836,181.25488l-32.3418,32.3418-7.54223-37.71191,39.884-39.88428Z" />
            </g>
          </>
        )
        break

      default:
        path = () => (
          <>
            <path
              d="M94.05887,184.56854c-11.3137,33.94113-56.56854,33.94113-56.56854,33.94113s0-45.25484,33.94113-56.56854"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M195.88225,105.37258,128,173.25483,82.74517,128l67.88225-67.88225c25.70415-25.70415,51.40829-25.45342,62.37042-23.81787a7.96343,7.96343,0,0,1,6.70228,6.70228C221.33567,53.96429,221.5864,79.66843,195.88225,105.37258Z"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M184.56854,116.68629v64.56854a8,8,0,0,1-2.34314,5.65686l-32.34176,32.34176a8,8,0,0,1-13.5015-4.08793L128,173.25483"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M139.31371,71.43146H74.74517a8,8,0,0,0-5.65686,2.34314L36.74655,106.11636a8,8,0,0,0,4.08793,13.5015L82.74517,128"
              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} />
  }
)
