Path: blob/master/cloud/ai-service-apps/nextjs-carbon-react-ui/src/components/Avatar/Avatar.js
6408 views
// Modules -------------------------------------------------------------------->12import React from "react";3import PropTypes from "prop-types";4import cx from "classnames";56import {7Watsonx,8Bot,9Connect,10WatsonHealth3DCurveAutoColon,11Bee,12ChatBot,13DataCategorical,14FaceActivated,15Gamification,16User,17Branch,18Concept,19Bicycle,20Umbrella,21Chemistry,22DecisionTree,23Flash,24Gem,25} from "@carbon/react/icons";2627// Globals -------------------------------------------------------------------->2829const ICONS = {30Watsonx: {31ICON: () => <Watsonx />,32REF: Watsonx,33},34Bot: {35ICON: () => <Bot />,36REF: Bot,37},38Connect: {39ICON: () => <Connect />,40REF: Connect,41},42WatsonHealth3DCurveAutoColon: {43ICON: () => <WatsonHealth3DCurveAutoColon />,44REF: WatsonHealth3DCurveAutoColon,45},46Bee: {47ICON: () => <Bee />,48REF: Bee,49},50ChatBot: {51ICON: () => <ChatBot />,52REF: ChatBot,53},54DataCategorical: {55ICON: () => <DataCategorical />,56REF: DataCategorical,57},58FaceActivated: {59ICON: () => <FaceActivated />,60REF: FaceActivated,61},62Gamification: {63ICON: () => <Gamification />,64REF: Gamification,65},66User: {67ICON: () => <User />,68REF: User,69},70Branch: {71ICON: () => <Branch />,72REF: Branch,73},74Concept: {75ICON: () => <Concept />,76REF: Concept,77},78Bicycle: {79ICON: () => <Bicycle />,80REF: Bicycle,81},82Umbrella: {83ICON: () => <Umbrella />,84REF: Umbrella,85},86Chemistry: {87ICON: () => <Chemistry />,88REF: Chemistry,89},90DecisionTree: {91ICON: () => <DecisionTree />,92REF: DecisionTree,93},94Flash: {95ICON: () => <Flash />,96REF: Flash,97},98Gem: {99ICON: () => <Gem />,100REF: Gem,101},102};103104const COLORS = {105background: "avatar__colorBackground",106supportWarning: "avatar__colorSupportWarning",107supportCautionMajor: "avatar__colorSupportCautionMajor",108supportError: "avatar__colorSupportError",109backgroundSelected: "avatar__colorBackgroundSelected",110layerAccentActive02: "avatar__colorLayerAccentActive02",111backgroundBrand: "avatar__colorBackgroundBrand",112supportSuccessInverse: "avatar__colorSupportSuccessInverse",113tagBackground: "avatar__colorTagBackground",114linkPrimary: "avatar__colorLinkPrimary",115supportInfo: "avatar__colorSupportInfo",116supportSuccess: "avatar__colorSupportSuccess",117};118119// Classes -------------------------------------------------------------------->120121const Avatar = ({ color = "background", icon = "Bot", chat = false, profile = false }) => {122const avatarStyle = cx("avatar__avatar", COLORS[color], {123["chat"]: chat,124["profile"]: profile,125});126127return <div className={avatarStyle}>{icon && ICONS[icon].ICON()}</div>;128};129130Avatar.propTypes = {131icon: PropTypes.string,132color: PropTypes.string,133chat: PropTypes.bool,134};135136// Public Methods ------------------------------------------------------------->137138export { Avatar, ICONS, COLORS };139140141