2024-10-30 22:25:36 +00:00
|
|
|
|
/* Copyright (C) 2024 Manuel Bustillo*/
|
|
|
|
|
|
2024-10-30 23:24:29 +01:00
|
|
|
|
import clsx from "clsx"
|
|
|
|
|
import { Icon } from "../../types";
|
|
|
|
|
import * as HeroIcon from '@heroicons/react/24/outline'
|
|
|
|
|
|
|
|
|
|
type Style = "green" | "blue" | "red" | "orange" | "gray"
|
|
|
|
|
|
|
|
|
|
const colorClasses = (style: Style) => {
|
|
|
|
|
switch (style) {
|
|
|
|
|
case "green":
|
|
|
|
|
return "bg-green-700 hover:bg-green-800"
|
|
|
|
|
case "blue":
|
|
|
|
|
return "bg-blue-500 hover:bg-blue-700"
|
|
|
|
|
case "red":
|
|
|
|
|
return "bg-red-600 hover:bg-red-700"
|
|
|
|
|
case "orange":
|
|
|
|
|
return "bg-orange-600 hover:bg-orange-700"
|
|
|
|
|
case "gray":
|
|
|
|
|
return "bg-gray-600 hover:bg-gray-700"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2024-12-11 08:38:50 +01:00
|
|
|
|
export function MainCard({ amount, title, subtitle, style, iconName }:
|
2024-10-30 23:24:29 +01:00
|
|
|
|
{
|
|
|
|
|
amount: string,
|
|
|
|
|
title: string,
|
|
|
|
|
subtitle?: string,
|
|
|
|
|
style: Style,
|
|
|
|
|
iconName: keyof typeof HeroIcon
|
|
|
|
|
}) {
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
<div className={`w-80 m-1 py-2 px-6 text-white flex flex-row items-center ${colorClasses(style)}`}>
|
|
|
|
|
<Icon className="m-3 h-14 w-14" name={iconName} />
|
|
|
|
|
<div className="flex flex-col justify-evenly">
|
|
|
|
|
<div className="text-4xl font-medium">{amount}</div>
|
|
|
|
|
<div className="text-xl">{title}</div>
|
|
|
|
|
<div className="text-sm">{subtitle || 'ㅤ'}</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
2024-12-11 08:38:50 +01:00
|
|
|
|
export function SecondaryCard({ amount, title, iconName, style }: { amount: string, title: string, iconName: keyof typeof HeroIcon, style: Style }) {
|
2024-10-30 23:24:29 +01:00
|
|
|
|
return (
|
|
|
|
|
<div className={`h-12 w-80 m-1 p-2 text-white flex flex-row items-center ${colorClasses(style)}`}>
|
|
|
|
|
<Icon className="m-3 h-7 w-7" name={iconName} />
|
|
|
|
|
<span className="text-2xl font-medium mx-1">{amount}</span>
|
|
|
|
|
<span className="text-l mx-1">{title}</span>
|
|
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
}
|