app/addons/documents/index-results/containers/IndexResultsContainer.js (97 lines of code) (raw):

// Licensed under the Apache License, Version 2.0 (the "License"); you may not // use this file except in compliance with the License. You may obtain a copy of // the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, WITHOUT // WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the // License for the specific language governing permissions and limitations under // the License. import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import IndexResults from '../components/results/IndexResults'; import { fetchDocs, bulkDeleteDocs } from '../actions/fetch'; import { queryOptionsToggleIncludeDocs } from '../actions/queryoptions'; import { selectDoc, changeLayout, bulkCheckOrUncheck, changeTableHeaderAttribute, resetState, updateResultsStyle } from '../actions/base'; import { getDocs, getSelectedDocs, getIsLoading, getHasResults, getDataForRendering, getIsEditable, getSelectedLayout, getAllDocsSelected, getHasDocsSelected, getNumDocsSelected, getTextEmptyIndex, getDocType, getFetchParams, getQueryOptionsParams, getResultsStyle } from '../reducers'; const mapStateToProps = ({indexResults}, ownProps) => { return { noResultsWarning: indexResults.noResultsWarning, docs: getDocs(indexResults), selectedDocs: getSelectedDocs(indexResults), isLoading: getIsLoading(indexResults), hasResults: getHasResults(indexResults), results: getDataForRendering(indexResults, ownProps.databaseName, ownProps.deleteEnabled), isEditable: getIsEditable(indexResults), selectedLayout: getSelectedLayout(indexResults), allDocumentsSelected: getAllDocsSelected(indexResults), hasSelectedItem: getHasDocsSelected(indexResults), numDocsSelected: getNumDocsSelected(indexResults), textEmptyIndex: getTextEmptyIndex(indexResults), docType: getDocType(indexResults), fetchParams: getFetchParams(indexResults), queryOptionsParams: getQueryOptionsParams(indexResults), partitionKey: ownProps.partitionKey, resultsStyle: getResultsStyle(indexResults) }; }; const mapDispatchToProps = (dispatch, ownProps) => { return { fetchDocs: (fetchParams, queryOptionsParams) => { dispatch(fetchDocs(ownProps.queryDocs, fetchParams, queryOptionsParams)); }, selectDoc: (doc, selectedDocs) => { dispatch(selectDoc(doc, selectedDocs)); }, bulkDeleteDocs: (docs, fetchParams, queryOptionsParams) => { dispatch(bulkDeleteDocs(ownProps.databaseName, ownProps.queryDocs, docs, ownProps.designDocs, fetchParams, queryOptionsParams, ownProps.docType)); }, changeLayout: (newLayout) => { dispatch(changeLayout(newLayout)); }, bulkCheckOrUncheck: (docs, selectedDocs, allDocumentsSelected) => { dispatch(bulkCheckOrUncheck(docs, selectedDocs, allDocumentsSelected, ownProps.docType)); }, changeTableHeaderAttribute: (newField, selectedFields) => { dispatch(changeTableHeaderAttribute(newField, selectedFields)); }, resetState: () => { dispatch(resetState()); }, queryOptionsToggleIncludeDocs: (previousIncludeDocs) => { dispatch(queryOptionsToggleIncludeDocs(previousIncludeDocs)); }, updateResultsStyle: (newStyle) => { dispatch(updateResultsStyle(newStyle)); } }; }; const IndexResultsContainer = connect ( mapStateToProps, mapDispatchToProps )(IndexResults); export default IndexResultsContainer; IndexResultsContainer.propTypes = { queryDocs: PropTypes.func.isRequired, docType: PropTypes.string.isRequired };