Uecko_ERP/packages/ui/src/components/loading-overlay/loading-indicator.tsx

55 lines
1.3 KiB
TypeScript
Raw Normal View History

2025-05-05 17:11:44 +00:00
import { t } from "i18next";
import styles from "./LoadingIndicator.module.css";
import { LoadingSpinIcon } from "./LoadingSpinIcon";
export type LoadingIndicatorProps = {
look?: "dark" | string;
size?: number;
active?: boolean;
title?: string;
subtitle?: string;
};
export const LoadingIndicator = ({
active = true,
look = "dark",
title = t("components.loading_indicator.title"),
subtitle = "",
}: LoadingIndicatorProps) => {
const isDark = look === "dark";
const loadingSpinClassName = isDark ? "text-brand" : "text-white";
if (!active) {
return;
}
return (
<div className={styles.LoadingIndicator}>
<LoadingSpinIcon size={12} className={loadingSpinClassName} />
{/*<Spinner {...spinnerProps} />*/}
{title ? (
<h2
className={cn(
styles.LoadingIndicator__title,
isDark ? styles.LoadingIndicator__darktext : styles.LoadingIndicator__lighttext
)}
>
{title}
</h2>
) : null}
{subtitle ? (
<p
className={cn(
styles.LoadingIndicator__subtitle,
isDark ? styles.LoadingIndicator__darktext : styles.LoadingIndicator__lighttext
)}
>
{subtitle}
</p>
) : null}
</div>
);
};
LoadingIndicator.displayName = "LoadingIndicator";