import React, { useState } from "react";
import Loader from "../loader/loader";
import PropTypes from "prop-types";
import { upperCaseFirst } from "../../utils";
// TODO: udpate this
import { OverlayTrigger, Tooltip } from "react-bootstrap";
const Modules = ({ isLoading, modules, fetchModules }) => {
const [show, setShow] = useState(false);
if (isLoading) {
return ;
}
const handleClick = () => {
fetchModules();
setShow(true);
};
if (!show) {
return (
);
}
return (
{Object.keys(modules).map((type) => (
))}
);
};
Modules.propTypes = {
isLoading: PropTypes.bool.isRequired,
modules: PropTypes.object.isRequired,
fetchModules: PropTypes.func.isRequired,
};
export default Modules;
const ModulesByVideoType = ({ type, modules }) => (
{`${upperCaseFirst(type)} modules`}
{Object.keys(modules).map((moduleType, i) => (
))}
);
ModulesByVideoType.propTypes = {
type: PropTypes.string.isRequired,
modules: PropTypes.object.isRequired,
};
const ModuleByType = ({ type, modules }) => (
{upperCaseFirst(type)}
{modules.map((module, type) => {
return ;
})}
);
ModuleByType.propTypes = {
type: PropTypes.string.isRequired,
modules: PropTypes.array.isRequired,
};
const Module = ({ module }) => {
let iconClass, prettyStatus, badgeClass;
switch (module.status) {
case "ok":
iconClass = "fa fa-check-circle";
badgeClass = "badge badge-pill badge-success";
prettyStatus = "OK";
break;
case "fail":
iconClass = "fa fa-times-circle";
badgeClass = "badge badge-pill badge-danger";
prettyStatus = "Fail";
break;
case "not_implemented":
iconClass = "fa fa-question-circle";
badgeClass = "badge badge-pill badge-default";
prettyStatus = "Not implemented";
break;
default:
iconClass = "fa fa-question-circle";
badgeClass = "badge badge-pill badge-warning";
prettyStatus = "Unknown";
}
const tooltip = (
Status: {prettyStatus}
{module.error !== "" && Error: {module.error}
}
);
return (
{module.name} |
{prettyStatus}
|
);
};
Module.propTypes = {
module: PropTypes.object.isRequired,
};