import React from 'react';
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
import { IconProp } from '@fortawesome/fontawesome-svg-core';

interface Props {
    icon?: IconProp;
    title: string | React.ReactNode;
    className?: string;
    children: React.ReactNode;
}

const TitledGreyBox = ({ icon, title, children, className }: Props) => (
    <div className={`rounded shadow-md bg-neutral-700 ${className}`}>
        <div className={'bg-neutral-900 rounded-t p-3 border-b border-black'}>
            {typeof title === 'string' ?
                <p className={'text-sm uppercase'}>
                    {icon && <FontAwesomeIcon icon={icon} className={'mr-2 text-neutral-300'}/>}{title}
                </p>
                :
                title
            }
        </div>
        <div className={'p-3'}>
            {children}
        </div>
    </div>
);

export default TitledGreyBox;