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

export const IconMesh24 = 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="M22.56 15.09c.286-.98.44-2.017.44-3.09 0-3.075-1.262-5.855-3.296-7.851A1.75 1.75 0 0018 2h-.01c-.328 0-.635.09-.897.247A10.953 10.953 0 0012 1c-2.448 0-4.709.8-6.536 2.152A1.744 1.744 0 004.75 3h-.01a1.75 1.75 0 00-1.595 2.472A10.95 10.95 0 001 12a10.99 10.99 0 004.99 9.215v.035c0 .966.784 1.75 1.75 1.75h.01c.445 0 .851-.166 1.16-.44.98.286 2.017.44 3.09.44a10.99 10.99 0 009.221-5H21.25a1.75 1.75 0 001.31-2.91zM4.603 6.495a1.745 1.745 0 01-.309-.052A9.457 9.457 0 002.5 12a9.49 9.49 0 004.17 7.865c.106-.082.222-.152.345-.208-.012-4.964-.626-8.255-2.412-13.162zm4.74 14.03c.09.198.144.414.155.642A9.513 9.513 0 0012 21.5a9.49 9.49 0 007.864-4.169 1.743 1.743 0 01-.262-1.697c-1.477-1.49-2.83-2.747-4.193-3.859-1.514 2.857-3.359 5.497-6.065 8.75zm11.824-6.023c-.17.006-.333.037-.487.09-1.61-1.626-3.083-2.986-4.578-4.186.729-1.509 1.393-3.11 2.064-4.914.212-.02.412-.077.595-.166A9.47 9.47 0 0121.5 12a9.51 9.51 0 01-.333 2.502zM12 2.5a9.46 9.46 0 014.257 1.005 1.745 1.745 0 00.496 1.483 55.99 55.99 0 01-1.866 4.483c-2.418-1.785-5-3.234-8.388-4.768a1.75 1.75 0 00-.059-.407A9.457 9.457 0 0112 2.5zM6.077 6.159c1.737 4.813 2.384 8.186 2.435 13.02 2.538-3.084 4.267-5.6 5.697-8.343-2.352-1.763-4.843-3.177-8.132-4.677z"
                    clipRule="evenodd"
                />
            </svg>
        );
    }
);
