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 (
Show modules status
); } 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, };