shelving
Version:
Toolkit for using data in JavaScript.
19 lines (18 loc) • 862 B
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { CheckCircleIcon, ExclamationTriangleIcon, InformationCircleIcon, XCircleIcon } from "@heroicons/react/24/solid";
import statusStyles from "../style/Status.module.css";
import { getModuleClass } from "../util/css.js";
import { Loading } from "./Loading.js";
import styles from "./StatusIcon.module.css";
const STATUS_ICONS = {
loading: Loading,
success: CheckCircleIcon,
error: XCircleIcon,
warning: ExclamationTriangleIcon,
danger: ExclamationTriangleIcon,
};
/** Output a status icon based on the current status of something. */
export function StatusIcon({ status = "info", ...variants }) {
const Icon = STATUS_ICONS[status] ?? InformationCircleIcon;
return _jsx(Icon, { className: `${getModuleClass(styles, "icon", variants)} ${getModuleClass(statusStyles, status)}` });
}