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

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

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

    switch (props.weight) {
      case 'fill':
        path = () => (
          <>
            <path d="M190.251,69.68652a23.9764,23.9764,0,0,0-41.56055.01514L133.07422,42.65332a23.97141,23.97141,0,0,0-41.8042.45459A24.00171,24.00171,0,0,0,49.90137,64.916a23.98424,23.98424,0,0,0-17.28614,35.7373L36.23,106.91455A23.98051,23.98051,0,0,0,15.4375,142.90234l37,64.08594a77.99184,77.99184,0,0,0,140.75391-12.09082A78.372,78.372,0,0,0,207.251,99.13184Zm-37.2627,155.459a66.077,66.077,0,0,1-90.1582-24.15723l-37-64.08594a12.00023,12.00023,0,0,1,20.78515-12l.001.00122,23.999,41.56812a6.00012,6.00012,0,1,0,10.39258-6l-38-65.81836a11.99981,11.99981,0,1,1,20.78418-12l38,65.81836a6.00012,6.00012,0,0,0,10.39258-6l-30-51.96143v-.00048a11.99981,11.99981,0,1,1,20.78418-12l42,72.74609a6.00012,6.00012,0,0,0,10.39258-6L139.36182,117.5437l-.00049-.00073a11.99981,11.99981,0,0,1,20.78418-12l17,29.44531a65.999,65.999,0,0,1-24.15723,90.15723Zm13.9209-199.97266,4.1416-15.4541a6.00029,6.00029,0,0,1,11.5918,3.10547l-4.1416,15.4541a6.00029,6.00029,0,0,1-11.5918-3.10547Zm26.06152,9.85352,9.17774-13.10645a6.00007,6.00007,0,0,1,9.83008,6.88281l-9.17774,13.10645a6.00007,6.00007,0,0,1-9.83008-6.88281Zm41.10938,18.82519L220.97363,63.0293a6.00007,6.00007,0,0,1-6.88281-9.83008l13.10645-9.17774a6.00007,6.00007,0,0,1,6.88281,9.83008Z" />
          </>
        )
        break

      default:
        path = () => (
          <>
            <path
              d="M51.81106,121.9021a18,18,0,1,0-31.17691,18l37,64.08588a72,72,0,0,0,124.70766-72l-17-29.44487a18,18,0,0,0-31.17692,18"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M106.988,145.47132l-38-65.81793a18,18,0,0,0-31.17692,18l38,65.81793"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M150.16489,148.25593l-42-72.74614a18,18,0,0,0-31.17691,18"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M99.04433,67.71252,88.70079,49.797a18,18,0,1,0-31.17691,18L59.867,71.85533"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M188.03672,191.515a72.02623,72.02623,0,0,0,14.0179-89.38343l-17-29.44486a18,18,0,1,0-31.17691,18"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <path
              d="M156.22161,94.74648l-28.3439-49.09309a18,18,0,0,0-31.17692,18"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <line
              x1="176.84663"
              y1="11.27112"
              x2="172.70552"
              y2="26.72593"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <line
              x1="207.06334"
              y1="25.3614"
              x2="197.88611"
              y2="38.46784"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <line
              x1="230.6386"
              y1="48.93666"
              x2="217.53216"
              y2="58.11389"
              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} />
  }
)
