diff --git a/src/components/SearchFilters/SearchFilters.js b/src/components/SearchFilters/SearchFilters.js index 6f278d78..61166c7c 100644 --- a/src/components/SearchFilters/SearchFilters.js +++ b/src/components/SearchFilters/SearchFilters.js @@ -12,7 +12,7 @@ import { createResourceLocatorString } from '../../util/routes'; import css from './SearchFilters.css'; const CATEGORY_URL_PARAM = 'pub_category'; -const FEATURES_URL_PARAM = 'pub_features'; +const FEATURES_URL_PARAM = 'pub_amenities'; const FILTER_OFFSET = -14; @@ -47,9 +47,7 @@ const SearchFiltersComponent = props => { const initialFeatures = urlQueryParams[FEATURES_URL_PARAM] && urlQueryParams[FEATURES_URL_PARAM].split(','); - const handleSelectOptions = options => { - console.log('Select features', options); - + const handleSelectOptions = (urlParam, options) => { const queryParams = options ? { ...urlQueryParams, [FEATURES_URL_PARAM]: options.join(',') } : omit(urlQueryParams, FEATURES_URL_PARAM); @@ -80,6 +78,7 @@ const SearchFiltersComponent = props => { const featuresFilter = features ? ( { - const queryParams = values ? `?${stringify({ pub_amenities: values.join(',') })}` : ''; +const handleSubmit = (urlParam, values, history) => { + const queryParams = values ? `?${stringify({ [urlParam]: values.join(',') })}` : ''; history.push(`${window.location.pathname}${queryParams}`); }; @@ -47,12 +49,13 @@ const AmenitiesFilterComponent = withRouter(props => { const { history, location } = props; const params = parse(location.search); - const amenities = params.pub_amenities; + const amenities = params[URL_PARAM]; const initialValues = !!amenities ? amenities.split(',') : []; return ( handleSubmit(values, history)} + urlParam={URL_PARAM} + onSubmit={(urlParam, values) => handleSubmit(urlParam, values, history)} options={options} initialValues={initialValues} contentPlacementOffset={-14} diff --git a/src/components/SelectMultipleFilter/SelectMultipleFilter.js b/src/components/SelectMultipleFilter/SelectMultipleFilter.js index 627232c2..b689c608 100644 --- a/src/components/SelectMultipleFilter/SelectMultipleFilter.js +++ b/src/components/SelectMultipleFilter/SelectMultipleFilter.js @@ -48,9 +48,10 @@ class SelectMultipleFilter extends Component { } handleSubmit(values) { + const { onSubmit, urlParam } = this.props; const selectedKeys = valuesToKeys(values); this.setState({ isOpen: false }); - this.props.onSubmit(selectedKeys); + onSubmit(urlParam, selectedKeys); } handleClear() { @@ -59,9 +60,9 @@ class SelectMultipleFilter extends Component { } handleCancel() { - const { onSubmit, initialValues } = this.props; + const { onSubmit, initialValues, urlParam } = this.props; this.setState({ isOpen: false }); - onSubmit(initialValues); + onSubmit(urlParam, initialValues); } handleBlur(event) { @@ -166,6 +167,7 @@ SelectMultipleFilter.defaultProps = { SelectMultipleFilter.propTypes = { rootClassName: string, className: string, + urlParam: string.isRequired, onSubmit: func.isRequired, options: array.isRequired, initialValues: arrayOf(string), diff --git a/src/containers/SearchPage/SearchPage.js b/src/containers/SearchPage/SearchPage.js index 405505d7..c76081a3 100644 --- a/src/containers/SearchPage/SearchPage.js +++ b/src/containers/SearchPage/SearchPage.js @@ -43,7 +43,7 @@ const SEARCH_WITH_MAP_DEBOUNCE = 300; // Little bit of debounce before search is const BOUNDS_FIXED_PRECISION = 8; const CATEGORY_URL_PARAM = 'pub_category'; -const FEATURES_URL_PARAM = 'pub_features'; +const FEATURES_URL_PARAM = 'pub_amenities'; // extract search parameters, including a custom attribute named category const pickSearchParamsOnly = params => { diff --git a/src/containers/SearchPage/__snapshots__/SearchPage.test.js.snap b/src/containers/SearchPage/__snapshots__/SearchPage.test.js.snap index 336ba5fb..fb1ecae0 100644 --- a/src/containers/SearchPage/__snapshots__/SearchPage.test.js.snap +++ b/src/containers/SearchPage/__snapshots__/SearchPage.test.js.snap @@ -80,8 +80,8 @@ exports[`SearchPageComponent matches snapshot 1`] = ` "address": undefined, "bounds": undefined, "origin": undefined, + "pub_amenities": undefined, "pub_category": undefined, - "pub_features": undefined, } } /> @@ -112,8 +112,8 @@ exports[`SearchPageComponent matches snapshot 1`] = ` "address": undefined, "bounds": undefined, "origin": undefined, + "pub_amenities": undefined, "pub_category": undefined, - "pub_features": undefined, } } />