ES6 Plato on Github
Report Home
Summary Display
components/Event/EventFooter.js
Maintainability
77.19
Lines of code
61
Difficulty
14.33
Estimated Errors
0.28
Function weight
By Complexity
By SLOC
import React from 'react' import { Button, ButtonGroup, ButtonToolbar, OverlayTrigger, Tooltip } from 'react-bootstrap' import PropTypes from 'prop-types' /** * This class represents the event footer of an event panel. */ class EventFooter extends React.Component { render() { return ( <div style={{ position: 'relative', height:'37px' }}> <div className="noUnderlinedLink" style={{ position: 'absolute', right: '10px', top: '5px' }}> <ButtonToolbar> <ButtonGroup> {this.props.isSaveButtonEnabled === true ? <OverlayTrigger placement="left" overlay={<Tooltip id="tooltip"> <p> Save the event. </p> </Tooltip>}> <Button className="btn btn-primary" bsSize="small" onClick={() => this.props.onSaveButtonClicked()}> Save </Button> </OverlayTrigger> : <OverlayTrigger placement="left" overlay={<Tooltip id="tooltip2"> <p> First add a comment before you can save the event. </p> </Tooltip>}> <div> {/* the following div is a workaround to the abscence of tooltip on a disabled button */} <div style={{ position: 'relative', height: '30px', zIndex: '2' }}> </div> <Button style={{ position: 'relative', top: '-30px', zIndex: '1' }} className="btn btn-primary" bsSize="small" onClick={() => this.props.onSaveButtonClicked()} disabled> Save </Button> </div> </OverlayTrigger>} </ButtonGroup> <ButtonGroup> <Button className="btn btn-primary" bsSize='small' onClick={(e) => this.props.onCancelButtonClicked(e)} > Cancel </Button> </ButtonGroup> </ButtonToolbar> </div> </div> ) } } EventFooter.PropType = { /** the callback function executed when the cancel button is clicked */ onCancelButtonClicked: PropTypes.func.isRequired, /** the callback function executed when the save button is clicked */ onSaveButtonClicked: PropTypes.func.isRequired, /** whether the save button must be enabled or disabled */ isSaveButtonEnabled: PropTypes.bool } export default EventFooter;