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

export const IconDatabase16 = 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={16}
                height={16}
                fill="none"
                viewBox="0 0 16 16"
                aria-hidden={!title}
                ref={svgRef}
                aria-labelledby={titleId}
                {...props}
            >
                {title ? <title id={titleId}>{title}</title> : null}
                <path
                    fill={color}
                    d="M8 1c1.782 0 3.425.23 4.648.621.607.194 1.153.442 1.563.752.398.301.789.76.789 1.377v8.5c0 .616-.386 1.073-.784 1.376-.409.31-.953.559-1.56.753C11.435 14.77 9.791 15 8 15s-3.435-.23-4.656-.621c-.607-.194-1.151-.442-1.56-.753-.398-.303-.784-.76-.784-1.376v-8.5c0-.618.391-1.076.79-1.377.409-.31.955-.558 1.562-.752C4.575 1.23 6.218 1 8 1m5.5 8.723a7 7 0 0 1-.88.292c-1.215.321-2.848.485-4.62.485s-3.405-.164-4.62-.485a7 7 0 0 1-.88-.292v2.511c.01.021.049.09.192.199.22.167.588.35 1.11.518 1.035.332 2.517.549 4.198.549s3.163-.217 4.198-.549c.522-.167.89-.35 1.11-.518.143-.11.183-.178.192-.199zm0-4.175c-.263.124-.55.234-.852.33C11.425 6.27 9.782 6.5 8 6.5s-3.425-.23-4.648-.621a7 7 0 0 1-.852-.331v2.429a.6.6 0 0 0 .163.145c.214.146.575.304 1.102.443C4.807 8.842 6.3 9 8 9s3.193-.158 4.235-.435c.527-.14.888-.296 1.102-.443a.6.6 0 0 0 .163-.145zM8 2.5c-1.67 0-3.152.217-4.19.55-.524.167-.894.351-1.117.52a.7.7 0 0 0-.183.18c.02.031.067.093.183.18.223.169.593.353 1.117.52C4.848 4.783 6.33 5 8 5s3.152-.217 4.19-.55c.524-.167.894-.351 1.117-.52a.7.7 0 0 0 .183-.18.7.7 0 0 0-.183-.18c-.223-.169-.593-.353-1.117-.52C11.152 2.717 9.67 2.5 8 2.5"
                />
            </svg>
        );
    }
);
