import { forwardRef, useMemo } from 'react';
import { IconProps } from './types';

export const IconHammer24 = forwardRef<SVGSVGElement, IconProps>(
    ({ color = 'currentColor', title, ...props }, svgRef) => {
        const titleId = useMemo(
            () =>
                title
                    ? 'title-' + Math.random().toString(36).substr(2, 9)
                    : undefined,
            [title]
        );
        return (
            <svg
                xmlns="http://www.w3.org/2000/svg"
                width={24}
                height={24}
                fill="none"
                viewBox="0 0 24 24"
                aria-hidden={!title}
                ref={svgRef}
                aria-labelledby={titleId}
                {...props}
            >
                {title ? <title id={titleId}>{title}</title> : null}
                <path
                    fill={color}
                    fillRule="evenodd"
                    d="M5.334 3.59c5.05-3.364 10.377-.817 14.168 2.268l.038.034c.28.26.358.603.389.81.03.204.03.426.032.587v.03q.001.16.006.264l.209-.018.013-.002c.158-.016.38-.037.59-.026.194.01.554.054.837.327l.21.203c.641.618 1.103 1.062 1.866 1.814a.75.75 0 0 1 .008 1.062l-4.148 4.208a.75.75 0 0 1-1.06.007l-.366-.358a36 36 0 0 1-1.608-1.64 1.3 1.3 0 0 1-.327-.897c0-.084.004-.178.007-.245l.002-.042c.004-.08.006-.146.002-.21-.007-.129-.036-.338-.248-.66L5.09 21.97a2.25 2.25 0 0 1-3.182 0l-.879-.88a2.25 2.25 0 0 1 0-3.18L11.432 7.506c-.895-.824-1.706-1.324-2.521-1.67-.992-.422-2.016-.63-3.309-.888a.75.75 0 0 1-.268-1.36M2.09 18.97a.75.75 0 0 0 0 1.06l.878.88a.75.75 0 0 0 1.061 0L12.94 12 11 10.06zM18.446 6.934c-3.152-2.537-6.896-4.279-10.493-3 .523.14 1.036.306 1.545.522 1.177.5 2.306 1.255 3.539 2.52a.75.75 0 0 1-.007 1.054l-.97.97L14 10.94l1.47-1.47a.75.75 0 0 1 1.06 0c.87.87 1.135 1.58 1.17 2.213.008.141.003.267-.001.363l-.004.076-.004.099c.416.457.864.9 1.318 1.344l3.095-3.14c-.47-.46-.843-.82-1.318-1.277l-.118-.114a4 4 0 0 0-.349.024l-.03.003a4 4 0 0 1-.559.027c-.183-.007-.55-.041-.837-.314-.272-.26-.358-.593-.393-.81-.035-.22-.037-.453-.038-.62V7.33a4 4 0 0 0-.016-.397"
                    clipRule="evenodd"
                />
            </svg>
        );
    }
);
