Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 12 additions & 12 deletions src/components/CellContainer.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,13 @@ import getContext from 'recompose/getContext';
import mapProps from 'recompose/mapProps';
import compose from 'recompose/compose';

import {
customComponentSelector,
cellValueSelector,
cellPropertiesSelector,
classNamesForComponentSelector,
stylesForComponentSelector
} from '../selectors/dataSelectors';
//import {
// customComponentSelector,
// cellValueSelector,
// cellPropertiesSelector,
// classNamesForComponentSelector,
// stylesForComponentSelector
//} from '../selectors/dataSelectors';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please remove the commented lines.

import { valueOrResult } from '../utils/valueUtils';

function hasWidthOrStyles(cellProperties) {
Expand Down Expand Up @@ -41,11 +41,11 @@ const ComposedCellContainer = OriginalComponent => compose(
}),
connect((state, props) => {
return {
value: cellValueSelector(state, props),
customComponent: customComponentSelector(state, props),
cellProperties: cellPropertiesSelector(state, props),
className: classNamesForComponentSelector(state, 'Cell'),
style: stylesForComponentSelector(state, 'Cell'),
value: props.selectors.cellValueSelector(state, props),
customComponent: props.selectors.customComponentSelector(state, props),
cellProperties: props.selectors.cellPropertiesSelector(state, props),
className: props.selectors.classNamesForComponentSelector(state, 'Cell'),
style: props.selectors.stylesForComponentSelector(state, 'Cell'),
};
}),
mapProps(props => {
Expand Down
20 changes: 15 additions & 5 deletions src/components/FilterContainer.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,23 @@
import React from 'react';
import PropTypes from 'prop-types';
import compose from 'recompose/compose';
import getContext from 'recompose/getContext';
import { connect } from '../utils/griddleConnect';

import { classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';
//import { classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';
import { setFilter } from '../actions';

const EnhancedFilter = OriginalComponent => connect((state, props) => ({
className: classNamesForComponentSelector(state, 'Filter'),
style: stylesForComponentSelector(state, 'Filter'),
}), { setFilter })(props => <OriginalComponent {...props} />);
const EnhancedFilter = OriginalComponent => compose(
getContext({
selectors: PropTypes.object
}),
connect(
(state, props) => ({
className: props.selectors.classNamesForComponentSelector(state, 'Filter'),
style: props.selectors.stylesForComponentSelector(state, 'Filter'),
}),
{ setFilter }
)
)(props => <OriginalComponent {...props} />);

export default EnhancedFilter;
7 changes: 4 additions & 3 deletions src/components/LayoutContainer.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,17 @@ import getContext from 'recompose/getContext';
import mapProps from 'recompose/mapProps';
import compose from 'recompose/compose';

import { classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';
//import { classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';

const EnhancedLayout = OriginalComponent => compose(
getContext({
components: PropTypes.object,
selectors: PropTypes.object
}),
connect(
(state, props) => ({
className: classNamesForComponentSelector(state, 'Layout'),
style: stylesForComponentSelector(state, 'Layout'),
className: props.selectors.classNamesForComponentSelector(state, 'Layout'),
style: props.selectors.stylesForComponentSelector(state, 'Layout'),
})
),
mapProps( props => ({
Expand Down
22 changes: 15 additions & 7 deletions src/components/NextButtonContainer.js
Original file line number Diff line number Diff line change
@@ -1,13 +1,21 @@
import React from 'react';
import PropTypes from 'prop-types';
import compose from 'recompose/compose';
import getContext from 'recompose/getContext';
import { connect } from '../utils/griddleConnect';

import { textSelector, hasNextSelector, classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';
//import { textSelector, hasNextSelector, classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';

const enhance = OriginalComponent => connect((state, props) => ({
text: textSelector(state, { key: 'next' }),
hasNext: hasNextSelector(state, props),
className: classNamesForComponentSelector(state, 'NextButton'),
style: stylesForComponentSelector(state, 'NextButton'),
}))((props) => <OriginalComponent {...props} />);
const enhance = OriginalComponent => compose(
getContext({
selectors: PropTypes.object
}),
connect((state, props) => ({
text: props.selectors.textSelector(state, { key: 'next' }),
hasNext: props.selectors.hasNextSelector(state, props),
className: props.selectors.classNamesForComponentSelector(state, 'NextButton'),
style: props.selectors.stylesForComponentSelector(state, 'NextButton'),
}))
)((props) => <OriginalComponent {...props} />);

export default enhance;
9 changes: 5 additions & 4 deletions src/components/NoResultsContainer.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,17 @@ import compose from 'recompose/compose';
import mapProps from 'recompose/mapProps';
import getContext from 'recompose/getContext';

import { classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';
//import { classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';

const NoResultsContainer = OriginalComponent => compose(
getContext({
components: PropTypes.object,
selectors: PropTypes.object
}),
connect(
state => ({
className: classNamesForComponentSelector(state, 'NoResults'),
style: stylesForComponentSelector(state, 'NoResults'),
(state, props) => ({
className: props.selectors.classNamesForComponentSelector(state, 'NoResults'),
style: props.selectors.stylesForComponentSelector(state, 'NoResults'),
})
),
mapProps((props) => {
Expand Down
17 changes: 10 additions & 7 deletions src/components/PageDropdownContainer.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,21 @@ import { connect } from '../utils/griddleConnect';
import compose from 'recompose/compose';
import mapProps from 'recompose/mapProps';
import getContext from 'recompose/getContext';
import { currentPageSelector, maxPageSelector, classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';
//import { currentPageSelector, maxPageSelector, classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';

const enhance = OriginalComponent => compose(
getContext({
events: PropTypes.object,
selectors: PropTypes.object
}),
connect((state, props) => ({
maxPages: maxPageSelector(state, props),
currentPage: currentPageSelector(state, props),
className: classNamesForComponentSelector(state, 'PageDropdown'),
style: stylesForComponentSelector(state, 'PageDropdown'),
})),
connect(
(state, props) => ({
maxPages: props.selectors.maxPageSelector(state, props),
currentPage: props.selectors.currentPageSelector(state, props),
className: props.selectors.classNamesForComponentSelector(state, 'PageDropdown'),
style: props.selectors.stylesForComponentSelector(state, 'PageDropdown'),
})
),
mapProps(({ events: { onGetPage: setPage }, ...props }) => ({
...props,
setPage,
Expand Down
7 changes: 4 additions & 3 deletions src/components/PaginationContainer.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,16 +5,17 @@ import compose from 'recompose/compose';
import mapProps from 'recompose/mapProps';
import getContext from 'recompose/getContext';

import { classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';
//import { classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';

const EnhancedPaginationContainer = OriginalComponent => compose(
getContext({
components: PropTypes.object,
selectors: PropTypes.object
}),
connect(
(state, props) => ({
className: classNamesForComponentSelector(state, 'Pagination'),
style: stylesForComponentSelector(state, 'Pagination'),
className: props.selectors.classNamesForComponentSelector(state, 'Pagination'),
style: props.selectors.stylesForComponentSelector(state, 'Pagination'),
})
),
mapProps((props) => {
Expand Down
24 changes: 17 additions & 7 deletions src/components/PreviousButtonContainer.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,22 @@
import React from 'react';
import PropTypes from 'prop-types';
import compose from 'recompose/compose';
import getContext from 'recompose/getContext';
import { connect } from '../utils/griddleConnect';
import { textSelector, hasPreviousSelector, classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';
//import { textSelector, hasPreviousSelector, classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';

const enhance = OriginalComponent => connect((state, props) => ({
text: textSelector(state, { key: 'previous' }),
hasPrevious: hasPreviousSelector(state, props),
className: classNamesForComponentSelector(state, 'PreviousButton'),
style: stylesForComponentSelector(state, 'PreviousButton'),
}))((props) => <OriginalComponent {...props} />);
const enhance = OriginalComponent => compose(
getContext({
selectors: PropTypes.object
}),
connect(
(state, props) => ({
text: props.selectors.textSelector(state, { key: 'previous' }),
hasPrevious: props.selectors.hasPreviousSelector(state, props),
className: props.selectors.classNamesForComponentSelector(state, 'PreviousButton'),
style: props.selectors.stylesForComponentSelector(state, 'PreviousButton'),
})
)
)((props) => <OriginalComponent {...props} />);

export default enhance;
33 changes: 18 additions & 15 deletions src/components/RowContainer.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,26 +5,29 @@ import compose from 'recompose/compose';
import mapProps from 'recompose/mapProps';
import getContext from 'recompose/getContext';

import {
columnIdsSelector,
rowDataSelector,
rowPropertiesSelector,
classNamesForComponentSelector,
stylesForComponentSelector,
} from '../selectors/dataSelectors';
//import {
// columnIdsSelector,
// rowDataSelector,
// rowPropertiesSelector,
// classNamesForComponentSelector,
// stylesForComponentSelector,
//} from '../selectors/dataSelectors';
import { valueOrResult } from '../utils/valueUtils';

const ComposedRowContainer = OriginalComponent => compose(
getContext({
components: PropTypes.object,
selectors: PropTypes.object
}),
connect((state, props) => ({
columnIds: columnIdsSelector(state),
rowProperties: rowPropertiesSelector(state),
rowData: rowDataSelector(state, props),
className: classNamesForComponentSelector(state, 'Row'),
style: stylesForComponentSelector(state, 'Row'),
})),
connect(
(state, props) => ({
columnIds: props.selectors.columnIdsSelector(state),
rowProperties: props.selectors.rowPropertiesSelector(state),
rowData: props.selectors.rowDataSelector(state, props),
className: props.selectors.classNamesForComponentSelector(state, 'Row'),
style: props.selectors.stylesForComponentSelector(state, 'Row'),
})
),
mapProps(props => {
const { components, rowProperties, className, ...otherProps } = props;
return {
Expand All @@ -35,7 +38,7 @@ const ComposedRowContainer = OriginalComponent => compose(
}),
)(props => (
<OriginalComponent
{...props}
{...props}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please move this onto a single line, like the other components:

)(props => <OriginalComponent {...props} />);

It occurs to me that this is essentially a HOC identity function. @ryanlanciaux @joellanciaux is there a reason you haven't returned the result of compose() directly?

-const ComposedRowContainer = OriginalComponent => compose(
+const ComposedRowContainer = compose(
...
-)(props => <OriginalComponent {...props} />);
+);

/>
));

Expand Down
7 changes: 4 additions & 3 deletions src/components/SettingsContainer.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import compose from 'recompose/compose';
import mapProps from 'recompose/mapProps';
import getContext from 'recompose/getContext';

import { classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';
//import { classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';

function getSettingsComponentsArrayFromObject(settingsObject, settingsComponents) {
//TODO: determine if we need to make this faster
Expand All @@ -20,12 +20,13 @@ function getSettingsComponentsArrayFromObject(settingsObject, settingsComponents
const EnhancedSettings = OriginalComponent => compose(
getContext({
components: PropTypes.object,
selectors: PropTypes.object,
settingsComponentObjects: PropTypes.object
}),
connect(
(state, props) => ({
className: classNamesForComponentSelector(state, 'Settings'),
style: stylesForComponentSelector(state, 'Settings'),
className: props.selectors.classNamesForComponentSelector(state, 'Settings'),
style: props.selectors.stylesForComponentSelector(state, 'Settings'),
})
),
mapProps(props => {
Expand Down
11 changes: 8 additions & 3 deletions src/components/SettingsToggleContainer.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
import React from 'react';
import PropTypes from 'prop-types';
import { connect } from '../utils/griddleConnect';
import compose from 'recompose/compose';
import getContext from 'recompose/getContext';
import { textSelector, classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';
import { toggleSettings as toggleSettingsAction } from '../actions';

const enhancedSettingsToggle = OriginalComponent => compose(
getContext({
selectors: PropTypes.object
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Here, and elsewhere, please ensure you have a trailing comma for consistency.

}),
connect((state, props) => ({
text: textSelector(state, { key: 'settingsToggle' }),
className: classNamesForComponentSelector(state, 'SettingsToggle'),
style: stylesForComponentSelector(state, 'SettingsToggle'),
text: props.selectors.textSelector(state, { key: 'settingsToggle' }),
className: props.selectors.classNamesForComponentSelector(state, 'SettingsToggle'),
style: props.selectors.stylesForComponentSelector(state, 'SettingsToggle'),
}),
{
toggleSettings: toggleSettingsAction
Expand Down
27 changes: 17 additions & 10 deletions src/components/SettingsWrapperContainer.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,24 @@ import { isSettingsEnabledSelector, isSettingsVisibleSelector, classNamesForComp
const EnhancedSettingsWrapper = OriginalComponent => compose(
getContext({
components: PropTypes.object,
selectors: PropTypes.object,
}),
mapProps(props => ({
Settings: props.components.Settings,
SettingsToggle: props.components.SettingsToggle
})),
connect((state, props) => ({
isEnabled: isSettingsEnabledSelector(state),
isVisible: isSettingsVisibleSelector(state),
className: classNamesForComponentSelector(state, 'SettingsWrapper'),
style: stylesForComponentSelector(state, 'SettingsWrapper'),
}))
connect(
(state, props) => ({
isEnabled: props.selectors.isSettingsEnabledSelector(state),
isVisible: props.selectors.isSettingsVisibleSelector(state),
className: props.selectors.classNamesForComponentSelector(state, 'SettingsWrapper'),
style: props.selectors.stylesForComponentSelector(state, 'SettingsWrapper'),
})
),
mapProps(props => {
const { components, ...otherProps } = props;
return {
Settings: components.Settings,
SettingsToggle: components.SettingsToggle,
...otherProps
}
})
)(props => (
<OriginalComponent {...props} />
));
Expand Down
24 changes: 13 additions & 11 deletions src/components/TableBodyContainer.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,31 +5,33 @@ import compose from 'recompose/compose';
import mapProps from 'recompose/mapProps';
import getContext from 'recompose/getContext';

import { visibleRowIdsSelector, classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';
//import { visibleRowIdsSelector, classNamesForComponentSelector, stylesForComponentSelector } from '../selectors/dataSelectors';

const ComposedTableBodyContainer = OriginalComponent => compose(
getContext({
components: PropTypes.object,
selectors: PropTypes.object,
}),
connect((state, props) => ({
visibleRowIds: visibleRowIdsSelector(state),
className: classNamesForComponentSelector(state, 'TableBody'),
style: stylesForComponentSelector(state, 'TableBody'),
})),
connect(
(state, props) => ({
visibleRowIds: props.selectors.visibleRowIdsSelector(state),
className: props.selectors.classNamesForComponentSelector(state, 'TableBody'),
style: props.selectors.stylesForComponentSelector(state, 'TableBody'),
})
),
mapProps(props => {
const { components, ...otherProps } = props;
const { components, selectors, ...otherProps } = props;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I noticed this is the only place you're pulling selectors out of otherProps. I think it's better this way, since selectors isn't meant to be exposed to the wrapped component - can you add repeat this change elsewhere?

return {
Row: props.components.Row,
...otherProps,
};
}),
)(({Row, visibleRowIds, style, className}) => (
<OriginalComponent
rowIds={visibleRowIds}
Row={Row}
style={style}
className={className}
rowIds={visibleRowIds}
Row={Row}
style={style}
className={className}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This component can pass-thru props directly, like the other components:

)(props => <OriginalComponent {...props} />);

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clarification: please rename visibleRowIds to rowIds so props can pass-thru directly.

/>
));

Expand Down
Loading