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

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

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

    switch (props.weight) {
      case 'fill':
        path = () => (
          <>
            <path d="M247.29492,169.80862,213.32129,56.56252A15.953,15.953,0,0,0,204.084,46.35744l-.53759.16309.54931-.1919a185.84371,185.84371,0,0,0-34.53515-10.30712,8.00026,8.00026,0,1,0-3.12012,15.69336q6.72656,1.3374,13.18457,3.14746a7.97792,7.97792,0,0,1-4.46045,15.07714,188.85309,188.85309,0,0,0-93.26074-.18359,7.99484,7.99484,0,0,1-5.56592-14.87305l.03418.01172q6.4541-1.80762,13.20068-3.15185a8.00026,8.00026,0,0,0-3.12011-15.69336A185.88539,185.88539,0,0,0,51.917,46.35647a15.95771,15.95771,0,0,0-9.23828,10.20507L8.70508,169.80862a16.09028,16.09028,0,0,0,4.88672,16.72656c.95459.83008,1.9331,1.645,2.92529,2.45166.02344.019.04346.041.06689.06006,16.23047,13.166,37.50342,23.22461,61.51856,29.08691a7.99977,7.99977,0,0,0,3.79492-15.543,160.72734,160.72734,0,0,1-31.33789-11.0664l.06592.00488a7.99746,7.99746,0,0,1,8.59912-13.24219C78.21,186.74367,102.063,192,128,192s49.80664-5.26269,68.792-13.71924a7.997,7.997,0,0,1,8.58252,13.24854l.06592-.00488a160.72734,160.72734,0,0,1-31.33789,11.0664,7.99978,7.99978,0,1,0,3.79492,15.543c24.01514-5.8623,45.28809-15.9209,61.51856-29.08691.02441-.01953.04492-.042.06884-.062h.00049c.99121-.80615,1.96973-1.62109,2.92383-2.45068A16.09062,16.09062,0,0,0,247.29492,169.80862ZM96,156a12,12,0,1,1,12-12A12,12,0,0,1,96,156Zm64,0a12,12,0,1,1,12-12A12,12,0,0,1,160,156Z" />
          </>
        )
        break

      default:
        path = () => (
          <>
            <circle cx="96" cy="144.00002" r="12" />
            <circle cx="160" cy="144.00002" r="12" />
            <path
              d="M74.4017,80A175.32467,175.32467,0,0,1,128,72a175.32507,175.32507,0,0,1,53.59754,7.99971"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M181.59717,176.00041A175.32523,175.32523,0,0,1,128,184a175.32505,175.32505,0,0,1-53.59753-7.99971"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M155.04392,182.08789l12.02517,24.05047a7.96793,7.96793,0,0,0,8.99115,4.20919c24.53876-5.99927,45.69294-16.45908,61.10024-29.85086a8.05225,8.05225,0,0,0,2.47192-8.38971L205.65855,58.86074a8.02121,8.02121,0,0,0-4.62655-5.10908,175.85294,175.85294,0,0,0-29.66452-9.18289,8.01781,8.01781,0,0,0-9.31925,5.28642l-7.97318,23.91964"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M100.95624,182.08757l-12.02532,24.0508a7.96794,7.96794,0,0,1-8.99115,4.20918c-24.53866-5.99924-45.69277-16.459-61.10006-29.85069a8.05224,8.05224,0,0,1-2.47193-8.38972L50.34158,58.8607a8.0212,8.0212,0,0,1,4.62655-5.1091,175.85349,175.85349,0,0,1,29.66439-9.18283,8.0178,8.0178,0,0,1,9.31924,5.28642l7.97318,23.91964"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <circle cx="96" cy="144.00002" r="12" />
            <circle cx="160" cy="144.00002" r="12" />
            <path
              d="M74.4017,80A175.32467,175.32467,0,0,1,128,72a175.32507,175.32507,0,0,1,53.59754,7.99971"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M181.59717,176.00041A175.32523,175.32523,0,0,1,128,184a175.32505,175.32505,0,0,1-53.59753-7.99971"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M155.04392,182.08789l12.02517,24.05047a7.96793,7.96793,0,0,0,8.99115,4.20919c24.53876-5.99927,45.69294-16.45908,61.10024-29.85086a8.05225,8.05225,0,0,0,2.47192-8.38971L205.65855,58.86074a8.02121,8.02121,0,0,0-4.62655-5.10908,175.85294,175.85294,0,0,0-29.66452-9.18289,8.01781,8.01781,0,0,0-9.31925,5.28642l-7.97318,23.91964"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M100.95624,182.08757l-12.02532,24.0508a7.96794,7.96794,0,0,1-8.99115,4.20918c-24.53866-5.99924-45.69277-16.459-61.10006-29.85069a8.05224,8.05224,0,0,1-2.47193-8.38972L50.34158,58.8607a8.0212,8.0212,0,0,1,4.62655-5.1091,175.85349,175.85349,0,0,1,29.66439-9.18283,8.0178,8.0178,0,0,1,9.31924,5.28642l7.97318,23.91964"
              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} />
  }
)
