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

function IconSettingsComponent(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-settings${loadingKls} ${className}`} width={width} height={height} xmlns="http://www.w3.org/2000/svg" fill={useCurrentColor ? 'currentColor' : '#000'} viewBox="0 0 16 16" {...rest} ref={ref}><path fillRule="evenodd" d="M9.405 13.917a.81.81 0 0 0 .83.135l2.017-1.13.037-.024a.76.76 0 0 0 .292-.762c-.064-.264-.185-1.114.066-1.534.249-.42 1.07-.744 1.338-.824a.812.812 0 0 0 .546-.612c.016-.092.12-.708.12-1.167 0-.479-.113-1.129-.121-1.176v-.002a.812.812 0 0 0-.545-.601c-.268-.083-1.09-.407-1.338-.824-.248-.418-.128-1.27-.066-1.534a.765.765 0 0 0-.291-.762l-2.018-1.134-.04-.018a.811.811 0 0 0-.829.135c-.204.184-.902.712-1.404.712-.497 0-1.198-.528-1.404-.712a.811.811 0 0 0-.83-.135l-2.017 1.13-.038.024a.759.759 0 0 0-.29.763c.063.263.184 1.113-.067 1.533-.249.42-1.07.744-1.338.824a.812.812 0 0 0-.545.602l-.001.01c-.016.092-.12.708-.12 1.167 0 .479.113 1.128.121 1.176v.002a.812.812 0 0 0 .545.601c.268.083 1.09.407 1.338.824.249.418.128 1.27.066 1.534a.765.765 0 0 0 .291.762l2.018 1.134.04.018a.811.811 0 0 0 .829-.135c.204-.184.902-.712 1.404-.712.497 0 1.198.528 1.404.712ZM8 11.487a3.487 3.487 0 1 0 0-6.974 3.487 3.487 0 0 0 0 6.974Z" clipRule="evenodd"/><path fillRule="evenodd" d="M8 11.487a3.487 3.487 0 1 0 0-6.974 3.487 3.487 0 0 0 0 6.974Zm0-1.395a2.092 2.092 0 1 0 0-4.184 2.092 2.092 0 0 0 0 4.184Z" clipRule="evenodd" opacity=".5"/></svg>;
}

const IconSettings = React.forwardRef(IconSettingsComponent);
export default IconSettings;
