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

export const IconDocker24 = 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}
                    d="M17.97 7.445l.207-.31.36.217.159.112c.385.294 1.194 1.045 1.37 2.288.306-.053.616-.08.926-.082.734 0 1.227.17 1.508.309l.143.078.094.061.263.212-.09.272a2.775 2.775 0 01-.648.99c-.398.407-1.098.887-2.211.949l-.245.006h-.203c-.509 1.329-1.193 2.823-2.34 4.165a9.708 9.708 0 01-2.393 2.022 11.005 11.005 0 01-3.505 1.314c-.885.17-1.784.255-2.685.252-1.994 0-3.753-.391-4.836-1.076-.966-.61-1.71-1.605-2.208-2.957A11.082 11.082 0 011 12.422a.704.704 0 01.595-.7l.093-.007H16.18l.128-.009.204-.022c.353-.046.889-.15 1.267-.367-.452-.737-.58-1.6-.37-2.519.09-.384.228-.754.413-1.1l.148-.253zM4.974 9.14l.054.01c.05.017.09.058.107.11l.008.056v1.786l-.008.055a.173.173 0 01-.108.111l-.053.009H3.032a.17.17 0 01-.161-.12l-.009-.055V9.315l.009-.055a.173.173 0 01.107-.111l.054-.01h1.942zm2.676 0l.054.01c.05.017.09.058.107.11l.009.056v1.786l-.01.055a.173.173 0 01-.106.111l-.054.009H5.708a.171.171 0 01-.162-.12l-.009-.055V9.316c0-.078.05-.144.117-.167l.054-.01H7.65zm2.717 0l.054.01c.05.017.09.058.107.11l.008.056v1.786l-.008.055a.172.172 0 01-.108.111l-.053.009H8.425a.17.17 0 01-.161-.12l-.009-.055V9.315l.009-.055a.173.173 0 01.107-.111l.054-.01h1.942zm2.684 0l.054.009c.051.017.091.059.108.111l.009.056v1.786c0 .077-.05.143-.117.166l-.053.009H11.11a.17.17 0 01-.161-.12l-.01-.055V9.315l.01-.055a.173.173 0 01.107-.111l.054-.01h1.942zm2.709 0l.054.009c.05.017.09.059.108.111l.008.056v1.786c0 .077-.049.143-.117.166l-.053.009h-1.942a.17.17 0 01-.161-.12l-.009-.055V9.315l.009-.055a.173.173 0 01.107-.111l.054-.01h1.942zM7.65 6.57l.054.01c.05.017.09.058.107.11l.009.055v1.786a.176.176 0 01-.116.167l-.054.01H5.708a.172.172 0 01-.162-.121l-.008-.056V6.745c0-.077.049-.143.116-.166l.054-.009H7.65zm2.717 0l.053.01c.05.017.09.058.108.11l.008.055v1.786a.176.176 0 01-.115.167l-.054.01H8.425a.171.171 0 01-.161-.121l-.009-.056V6.745l.009-.055a.173.173 0 01.107-.11l.054-.01h1.942zm2.684 0c.075 0 .14.05.162.12l.009.055v1.786c0 .078-.05.144-.117.167l-.053.01H11.11a.171.171 0 01-.161-.121l-.01-.056V6.745l.01-.055a.173.173 0 01.107-.11l.054-.01h1.942zm0-2.57c.075 0 .14.05.162.12l.009.055v1.787c0 .078-.05.143-.117.166l-.053.01H11.11a.17.17 0 01-.161-.12l-.01-.056V4.175l.01-.055a.173.173 0 01.107-.111L11.11 4h1.942z"
                />
            </svg>
        );
    }
);
