import React, { ForwardedRef, useContext } from 'react';
import { OriginIconProps } from '../type';
import { Context } from '../context';

function IconTechnologyComponent(props: OriginIconProps, ref: ForwardedRef<SVGSVGElement>) {
    const { prefix: prefixFromContext } = useContext(Context);
    const { className = '', prefix: prefixFromProps, width = '1em', height = '1em', useCurrentColor = true, spin, ...rest } = props;

    const prefix = prefixFromProps || prefixFromContext || 'hiagent';
    const loadingKls = spin ? ` ${prefix}-icon-loading` : '';
    return <svg className={`${prefix}-icon ${prefix}-icon-technology${loadingKls} ${className}`} width={width} height={height} fill={useCurrentColor ? 'currentColor' : '#000'} viewBox="0 0 48 48" xmlns="http://www.w3.org/2000/svg" {...rest} ref={ref}><path fillRule="evenodd" clipRule="evenodd" d="M40.9705 7.02944C44.9448 11.0037 43.7716 17.3345 39.4705 23.9998C43.7716 30.6655 44.9448 36.9963 40.9705 40.9706C36.9962 44.9448 30.6654 43.7717 24.0002 39.4705C17.3345 43.7717 11.0037 44.9448 7.02938 40.9706C3.0551 36.9963 4.22827 30.6655 8.52943 24.0002C4.22827 17.3345 3.0551 11.0037 7.02938 7.02944C11.0037 3.05515 17.3345 4.22832 23.9997 8.52948C30.6654 4.22832 36.9962 3.05515 40.9705 7.02944ZM36.9486 27.5051L36.8842 27.5838C35.5739 29.2291 34.0977 30.8728 32.4852 32.4853C30.8469 34.1236 29.1763 35.6213 27.5046 36.9472C32.2783 39.7094 36.153 40.1313 38.1421 38.1421C40.1312 36.153 39.7094 32.2784 36.9486 27.5051ZM10.9717 27.6436L11.052 27.5037C12.3781 29.1757 13.876 30.8466 15.5147 32.4853C17.1532 34.1239 18.8241 35.6217 20.4953 36.9483C15.7218 39.7094 11.847 40.1313 9.85781 38.1421C7.88795 36.1723 8.28257 32.3533 10.9717 27.6436ZM23.9997 13.387L23.9592 13.4178C22.1546 14.775 20.2684 16.4178 18.3431 18.3431C16.4035 20.2828 14.7506 22.1827 13.3876 23.9994C14.75 25.8167 16.4032 27.7169 18.3431 29.6569C20.2827 31.5965 22.1826 33.2494 23.9994 34.6124C25.8166 33.2499 27.7169 31.5968 29.6568 29.6569C31.5967 27.7169 33.2498 25.8167 34.613 23.9997C33.2493 22.1827 31.5964 20.2828 29.6568 18.3431C27.7169 16.4032 25.8166 14.7501 23.9997 13.387ZM27.9999 24C27.9999 21.7909 26.2091 20 23.9999 20C21.7908 20 19.9999 21.7909 19.9999 24C19.9999 26.2091 21.7908 28 23.9999 28C26.2091 28 27.9999 26.2091 27.9999 24ZM9.85781 9.85786C7.86861 11.8471 8.29055 15.7219 11.0516 20.4954C12.3782 18.8241 13.8761 17.1533 15.5147 15.5147C17.1272 13.9022 18.7709 12.426 20.4161 11.1157L20.4953 11.0517C15.7218 8.2906 11.847 7.86867 9.85781 9.85786ZM27.5036 11.0521L27.6435 10.9718C32.3533 8.28263 36.1722 7.88801 38.1421 9.85786C40.1313 11.8471 39.7093 15.7219 36.9477 20.4961C35.6217 18.8241 34.1238 17.1533 32.4852 15.5147C30.8466 13.8761 29.1756 12.3781 27.5036 11.0521Z"/></svg>;
}

const IconTechnology = React.forwardRef(IconTechnologyComponent);
export default IconTechnology;
