UNPKG

pubsweet-component-bookbuilder

Version:

91 lines (82 loc) 2.16 kB
import React from 'react' import PropTypes from 'prop-types' import CustomModal from 'editoria-common/src/CustomModal' import ModalFooterDialog from 'editoria-common/src/ModalFooterDialog' import TeamManager from './TeamManager' const Footer = ( <ModalFooterDialog showConfirmButton={false} textCancel="Close" /> ) class TeamManagerModal extends React.Component { renderBody() { const { teams, findUser, updateTeam, rules, canViewAddTeamMember, } = this.props return ( <TeamManager canViewAddTeamMember={canViewAddTeamMember} findUser={findUser} rules={rules} teams={teams} updateTeam={updateTeam} /> ) } render() { const { isOpen, hideModal, loading, loadingRules } = this.props if (loading || loadingRules) return null const body = this.renderBody() return ( <CustomModal footerComponent={Footer} headerText="Book's Team Manager" isOpen={isOpen} onRequestClose={hideModal} shouldCloseOnOverlayClick={false} size="medium" > {body} </CustomModal> ) } } TeamManagerModal.propTypes = { container: PropTypes.any.isRequired, show: PropTypes.bool.isRequired, teams: PropTypes.arrayOf( PropTypes.shape({ id: PropTypes.string, name: PropTypes.string, type: PropTypes.string, rev: PropTypes.string, teamType: PropTypes.shape({ name: PropTypes.string, permissions: PropTypes.arrayOf(PropTypes.string), }), members: PropTypes.arrayOf(PropTypes.string), object: PropTypes.shape({ id: PropTypes.string, type: PropTypes.string, }), }), ).isRequired, toggle: PropTypes.func.isRequired, users: PropTypes.arrayOf( PropTypes.shape({ admin: PropTypes.bool, email: PropTypes.string, id: PropTypes.string, rev: PropTypes.string, type: PropTypes.string, username: PropTypes.string, }), ), updateTeam: PropTypes.func.isRequired, } TeamManagerModal.defaultProps = { users: null, } export default TeamManagerModal