diff --git a/src/components/openshiftView/openshiftView.js b/src/components/openshiftView/openshiftView.js index 44f9b8b58..e2f523211 100644 --- a/src/components/openshiftView/openshiftView.js +++ b/src/components/openshiftView/openshiftView.js @@ -122,7 +122,11 @@ class OpenshiftView extends React.Component { viewId } = this.props; const isC3 = location?.parsedSearch?.c3 === ''; - const { graphQuery, inventoryQuery: initialInventoryQuery, toolbarQuery } = apiQueries.parseRhsmQuery(query); + const { + graphQuery: initialGraphQuery, + inventoryQuery: initialInventoryQuery, + toolbarQuery + } = apiQueries.parseRhsmQuery(query); return ( @@ -142,7 +146,7 @@ class OpenshiftView extends React.Component { @@ -66,7 +70,7 @@ class RhelView extends React.Component { ({ ...state.graph?.reportCapacity?.[props.productId], ...{ viewId: props.viewId, - productId: props.productId, - query: props.query + productId: props.productId } }); +/** + * Return a combined query object. + * + * @param {object} state + * @param {object} props + * @returns {object} + */ +const queryFilter = (state, props = {}) => { + const { graphQuery: query } = apiQueries.parseRhsmQuery({ + ...props.query, + ...state.view?.query?.[props.productId], + ...state.view?.query?.[props.viewId] + }); + + return query; +}; + /** * Create selector, transform combined state, props into a consumable graph/charting object. * * @type {{pending: boolean, fulfilled: boolean, graphData: object, error: boolean, status: (*|number)}} */ -const selector = createSelector([statePropsFilter], response => { - const { viewId = null, productId = null, query = {}, metaId, metaQuery = {}, ...responseData } = response || {}; +const selector = createSelector([statePropsFilter, queryFilter], (response, query = {}) => { + const { viewId = null, productId = null, metaId, metaQuery = {}, ...responseData } = response || {}; const updatedResponseData = { error: responseData.error || false, fulfilled: false, pending: responseData.pending || responseData.cancelled || false, graphData: {}, + query, status: responseData.status }; diff --git a/src/redux/selectors/inventoryListSelectors.js b/src/redux/selectors/inventoryListSelectors.js index 935bc072d..80a0fbede 100644 --- a/src/redux/selectors/inventoryListSelectors.js +++ b/src/redux/selectors/inventoryListSelectors.js @@ -38,9 +38,6 @@ const statePropsFilter = (state, props = {}) => ({ } }); -/** - * ToDo: Apply "queryFilter" functionality across selectors for consistency - */ /** * Return a combined query object. *