import { Component } from "react"; import PropTypes from "prop-types"; import { connect } from "react-redux"; import entityGetter from "redux/utilities/entityGetter"; import helpers from "components/queries/QueryPageWrapper/helpers"; import queryInterface from "interfaces/query"; class QueryPageWrapper extends Component { static propTypes = { children: PropTypes.node, dispatch: PropTypes.func, query: queryInterface, queryID: PropTypes.string, }; componentDidMount() { const { dispatch, query, queryID } = this.props; const { fetchQuery } = helpers; if (queryID && !query) { fetchQuery(dispatch, queryID); } return false; } render() { const { children } = this.props; if (!children) { return false; } return children; } } const mapStateToProps = (state, { params }) => { const { id: queryID } = params; const query = entityGetter(state).get("queries").findBy({ id: queryID }); return { query, queryID }; }; export default connect(mapStateToProps)(QueryPageWrapper);