import React, { DetailedHTMLProps, HTMLAttributes } from "react";
import { twMerge } from "tailwind-merge";

/**
 * # General Card
 * @className_wrapper twui-card
 */
export default function Card({
    href,
    variant,
    linkProps,
    ...props
}: DetailedHTMLProps<HTMLAttributes<HTMLDivElement>, HTMLDivElement> & {
    variant?: "normal";
    href?: string;
    linkProps?: DetailedHTMLProps<
        React.AnchorHTMLAttributes<HTMLAnchorElement>,
        HTMLAnchorElement
    >;
}) {
    const component = (
        <div
            {...props}
            className={twMerge(
                "flex flex-row items-center p-4 rounded bg-white dark:bg-white/10",
                "border border-slate-200 dark:border-white/10 border-solid",
                href ? "hover:bg-slate-100 dark:hover:bg-white/30" : "",
                "twui-card",
                props.className
            )}
        >
            {props.children}
        </div>
    );

    if (href) {
        return (
            <a href={href} {...linkProps}>
                {component}
            </a>
        );
    }

    return component;
}
