2021-04-12 13:32:25 +00:00
|
|
|
import React from "react";
|
|
|
|
|
import classnames from "classnames";
|
2016-12-05 22:48:46 +00:00
|
|
|
|
2021-06-07 01:56:30 +00:00
|
|
|
import FleetIcon from "components/icons/FleetIcon";
|
2021-04-12 13:32:25 +00:00
|
|
|
import targetInterface from "interfaces/target";
|
2016-12-05 22:48:46 +00:00
|
|
|
|
2021-04-12 13:32:25 +00:00
|
|
|
const baseClass = "target-option";
|
2016-12-05 22:48:46 +00:00
|
|
|
|
|
|
|
|
const TargetIcon = ({ target }) => {
|
|
|
|
|
const iconName = () => {
|
|
|
|
|
const { name, platform, target_type: targetType } = target;
|
|
|
|
|
|
2021-04-12 13:32:25 +00:00
|
|
|
if (targetType === "labels") {
|
|
|
|
|
return name === "All Hosts" ? "all-hosts" : "label";
|
2016-12-05 22:48:46 +00:00
|
|
|
}
|
|
|
|
|
|
2021-04-12 13:32:25 +00:00
|
|
|
return platform === "darwin" ? "apple" : platform;
|
2016-12-05 22:48:46 +00:00
|
|
|
};
|
|
|
|
|
|
2017-02-24 19:11:33 +00:00
|
|
|
const { status } = target;
|
|
|
|
|
|
2021-04-12 13:32:25 +00:00
|
|
|
const targetClasses = classnames(
|
|
|
|
|
`${baseClass}__icon`,
|
|
|
|
|
`${baseClass}__icon--${status}`
|
|
|
|
|
);
|
2017-02-24 19:11:33 +00:00
|
|
|
|
2021-06-07 01:56:30 +00:00
|
|
|
return <FleetIcon name={iconName()} className={targetClasses} />;
|
2016-12-05 22:48:46 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
|
|
TargetIcon.propTypes = { target: targetInterface.isRequired };
|
|
|
|
|
|
|
|
|
|
export default TargetIcon;
|