Skip to content
Snippets Groups Projects
Stats.tsx 1.29 KiB
Newer Older
Toavina's avatar
Toavina committed
import React from "react"
Tojo's avatar
Tojo committed

interface Props {
Toavina's avatar
Toavina committed
    children?: React.ReactNode
    className?: string
    icon?: JSX.Element
    title?: string
    value?: string
    description?: string
Toavina's avatar
Toavina committed
    iconColor?: string
    valueColor?: string
    descriptionColor?: string
Tojo's avatar
Tojo committed
}

Toavina's avatar
Toavina committed
const Stats = (props: Props) => {
    const {
        children,
        className = "",
        iconColor,
        valueColor,
        descriptionColor,
Toavina's avatar
Toavina committed
        icon,
        title,
        value,
        description,
Toavina's avatar
Toavina committed
    } = props
Tojo's avatar
Tojo committed

Toavina's avatar
Toavina committed
    return (
        <div className={`stats shadow ${className}`}>
            <div className="stat">
                {icon ? (
                    <div className={`stat-figure ${iconColor}`}>{icon}</div>
                ) : (
                    <></>
                )}
                <div className="stat-title">{title}</div>
                <div className={`stat-value ${valueColor}`}>{value}</div>
                {description ? (
                    <div className={`stat-description ${descriptionColor}`}>{description}</div>
Toavina's avatar
Toavina committed
                ) : (
                    <></>
                )}
                {children ? (
                    <div className="stat-actions">{children}</div>
                ) : (
                    <></>
                )}
            </div>
        </div>
    )
}

export default Stats