import { connect } from 'react-redux';
import { push } from 'react-router-redux';
import { buildFullTextRegex, fullTextRegexFilter } from '../Search/FullTextSearch';
import actions from './actions';
import ContainersList from '../Presentational/ContainersList/ContainersList';

function flatValues(o) {
  const values = Object.values(o)
    .filter(e => typeof e !== 'function' && typeof e !== 'object')

  return [].concat(...values);
}

const mapStateToProps = (state) => {
  const regexFilter = buildFullTextRegex(state.filter);

  return {
    pending: !!state.pending[actions.FETCH_CONTAINERS],
    pendingInfo: !!state.pending[actions.INFO],
    containers: state.containers
      ? state.containers.filter(e => fullTextRegexFilter(flatValues(e).join(' '), regexFilter))
      : state.containers,
    filter: state.filter,
    error: state.error,
  };
};

const mapDispatchToProps = dispatch => ({
  onRefresh: () => dispatch(actions.info()),
  onAdd: () => dispatch(push('/containers/New')),
  onSelect: id => dispatch(push(`/containers/${id}`)),
  onLogout: () => dispatch(actions.logout()),
  onFilterChange: value => dispatch(actions.changeFilter(value)),
});

const ContainersListContainer = connect(mapStateToProps, mapDispatchToProps)(ContainersList);

/**
 * Container for handling list view.
 */
export default ContainersListContainer;

@@ -374,12 +374,115 @@
 ion'
- && 
+)%0A    .map(e =%3E %7B%0A      if (Array.isArray(e)) %7B%0A        return e.map(flatValues);%0A      %7D%0A      %0A      if (
 type
@@ -482,25 +482,25 @@
 f (typeof e 
-!
+=
 == 'object')
@@ -499,16 +499,87 @@
 object')
+ %7B%0A        return flatValues(e);%0A      %7D%0A      %0A      return e;%0A    %7D);
 %0A%0A  retu

Update ContainersListContainer.js