/* eslint-disable import/no-extraneous-dependencies */ /* eslint import/no-unresolved: [2, { ignore: [foremanReact/*] }] */ /* eslint-disable import/no-unresolved */ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import { Grid, Row, Col } from 'react-bootstrap'; import { Button } from 'patternfly-react'; import { LoadingState } from '../../move_to_pf/LoadingState'; import { createEnabledRepoParams, loadEnabledRepos } from '../../redux/actions/RedHatRepositories/enabled'; import { loadRepositorySets, updateRecommendedRepositorySets } from '../../redux/actions/RedHatRepositories/sets'; import SearchBar from './components/SearchBar'; import RecommendedRepositorySetsToggler from './components/RecommendedRepositorySetsToggler'; import { getSetsComponent, getEnabledComponent } from './helpers'; import api from '../../services/api'; class RedHatRepositoriesPage extends Component { componentDidMount() { this.loadData(); } loadData() { this.props.loadEnabledRepos(); this.props.loadRepositorySets({ search: { filters: ['rpm'] } }); } render() { const { enabledRepositories, repositorySets } = this.props; const { repoParams } = createEnabledRepoParams(enabledRepositories); return (

{__('Red Hat Repositories')}

{__('Available Repositories')}

this.props.updateRecommendedRepositorySets(value)} className="recommended-repositories-toggler" />
{getSetsComponent( repositorySets, (pagination) => { this.props.loadRepositorySets({ ...pagination, search: repositorySets.search, }); }, )}

{__('Enabled Repositories')}

{getEnabledComponent( enabledRepositories, (pagination) => { this.props.loadEnabledRepos({ ...pagination, search: enabledRepositories.search, }); }, )}
); } } RedHatRepositoriesPage.propTypes = { loadEnabledRepos: PropTypes.func.isRequired, loadRepositorySets: PropTypes.func.isRequired, updateRecommendedRepositorySets: PropTypes.func.isRequired, enabledRepositories: PropTypes.shape({ loading: PropTypes.bool, search: PropTypes.string, }).isRequired, repositorySets: PropTypes.shape({ recommended: PropTypes.array, loading: PropTypes.bool, search: PropTypes.string, }).isRequired, }; const mapStateToProps = ({ katello: { redHatRepositories: { enabled, sets }, }, }) => ({ enabledRepositories: enabled, repositorySets: sets, }); export default connect(mapStateToProps, { loadEnabledRepos, loadRepositorySets, updateRecommendedRepositorySets, })(RedHatRepositoriesPage);