keycloak-scim/js/libs/ui-shared/src/icons/IconMapper.tsx

58 lines
1.1 KiB
TypeScript

import {
BitbucketIcon,
CubeIcon,
FacebookSquareIcon,
GithubIcon,
GitlabIcon,
GoogleIcon,
InstagramIcon,
LinkedinIcon,
MicrosoftIcon,
OpenshiftIcon,
PaypalIcon,
StackOverflowIcon,
TwitterIcon,
} from "@patternfly/react-icons";
type IconMapperProps = {
icon: string;
};
export const IconMapper = ({ icon }: IconMapperProps) => {
const Icon = getIcon(icon);
return <Icon size="lg" alt={icon} />;
};
function getIcon(icon: string) {
switch (icon) {
case "github":
return GithubIcon;
case "facebook":
return FacebookSquareIcon;
case "gitlab":
return GitlabIcon;
case "google":
return GoogleIcon;
case "linkedin":
case "linkedin-openid-connect":
return LinkedinIcon;
case "openshift-v3":
case "openshift-v4":
return OpenshiftIcon;
case "stackoverflow":
return StackOverflowIcon;
case "twitter":
return TwitterIcon;
case "microsoft":
return MicrosoftIcon;
case "bitbucket":
return BitbucketIcon;
case "instagram":
return InstagramIcon;
case "paypal":
return PaypalIcon;
default:
return CubeIcon;
}
}