@veracity/vui
Version:
Veracity UI is a React component library crafted for use within Veracity applications and pages. Based on Styled Components and @xstyled.
35 lines (33 loc) • 1.23 kB
JavaScript
import { cs } from "../utils/styles.js";
import vui from "../core/vui.js";
import { Icon } from "../icon/icon.js";
import { useNotificationContext } from "./context.js";
import { INTENT_ICON_MAP, LOADING_ICON_PROPS, notificationStatusMapping } from "./consts.js";
import { jsx } from "react/jsx-runtime";
//#region src/notification/notificationIcon.tsx
/** Displays an icon based on the status or intent within the Notification. */
const NotificationIcon = vui((props, ref) => {
const { className, alignSelf, ...rest } = props;
const { status = "", statusMapping, intent, isLoading } = {
...useNotificationContext(),
...props
};
const resolvedIconProps = isLoading ? LOADING_ICON_PROPS : {
...notificationStatusMapping,
...statusMapping
}[status]?.iconProps ?? (intent ? INTENT_ICON_MAP[intent] : void 0);
return /* @__PURE__ */ jsx(Icon, {
alignSelf,
className: cs("vui-notificationIcon", className),
ref,
size: "md",
variant: isLoading ? "spinning" : "static",
...resolvedIconProps,
...rest
});
});
NotificationIcon.displayName = "NotificationIcon";
//#endregion
export { NotificationIcon, NotificationIcon as default };
globalThis.__vuiVersion__ = "5.3.1"
//# sourceMappingURL=notificationIcon.js.map