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

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

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

    switch (props.weight) {
      case 'fill':
        path = () => (
          <>
            <path d="M208.00146,40h-160a16.02085,16.02085,0,0,0-16,16v58.66406c0,89.46094,75.82032,119.125,91.03125,124.16406a15.45824,15.45824,0,0,0,9.9375,0c15.20313-5.03906,91.03125-34.69531,91.03125-124.16406V56A16.02084,16.02084,0,0,0,208.00146,40ZM177.5249,109.78906l-58.67187,56a8.00489,8.00489,0,0,1-11.04688,0l-29.32812-28A8.00135,8.00135,0,1,1,89.5249,126.21094l23.80469,22.72656L166.478,98.21094a8.00135,8.00135,0,1,1,11.04687,11.57812Z" />
          </>
        )
        break

      default:
        path = () => (
          <>
            <path
              d="M40,114.66667V56a8,8,0,0,1,8-8H208a8,8,0,0,1,8,8v58.66667c0,84.01533-71.306,111.85016-85.5438,116.57058a7.54755,7.54755,0,0,1-4.9124,0C111.306,226.51683,40,198.682,40,114.66667Z"
              fill="none"
              stroke="currentColor"
              strokeLinecap="round"
              strokeLinejoin="round"
              strokeWidth="18"
            />
            <polyline
              points="172 104 113.333 160 84 132"
              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} />
  }
)
