Skip to content

Commit 2923889

Browse files
committed
PR Feedback: Refactor _updateSearchResults
Changed all actions to call _updateSearchResults only with updated values. _updateSearchResults then defaults unprovided values to current state.
1 parent 5523bf7 commit 2923889

File tree

1 file changed

+25
-62
lines changed

1 file changed

+25
-62
lines changed

src/app-search/AppSearchDriver.js

Lines changed: 25 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -114,10 +114,19 @@ export default class AppSearchDriver {
114114
}
115115
}
116116

117-
_updateSearchResults = (
118-
{ current, filters, resultsPerPage, searchTerm, sortDirection, sortField },
119-
skipPushToUrl = false
120-
) => {
117+
_updateSearchResults = (searchParameters, skipPushToUrl = false) => {
118+
const {
119+
current,
120+
filters,
121+
resultsPerPage,
122+
searchTerm,
123+
sortDirection,
124+
sortField
125+
} = {
126+
...this.state,
127+
...searchParameters
128+
};
129+
121130
const searchOptions = {
122131
...this.searchOptions,
123132
page: {
@@ -141,13 +150,13 @@ export default class AppSearchDriver {
141150
current: resultList.info.meta.page.current,
142151
error: "",
143152
facets: resultList.info.facets,
144-
filters: filters,
153+
filters,
145154
requestId: resultList.info.meta.request_id,
146155
results: resultList.results,
147-
resultsPerPage: resultsPerPage,
148-
searchTerm: searchTerm,
149-
sortDirection: sortDirection,
150-
sortField: sortField,
156+
resultsPerPage,
157+
searchTerm,
158+
sortDirection,
159+
sortField,
151160
totalResults: resultList.info.meta.page.total_results
152161
});
153162

@@ -224,20 +233,10 @@ export default class AppSearchDriver {
224233
* @param value String field value to filter on
225234
*/
226235
addFilter = (name, value) => {
227-
const {
228-
filters,
229-
resultsPerPage,
230-
searchTerm,
231-
sortDirection,
232-
sortField
233-
} = this.state;
236+
const { filters } = this.state;
234237
this._updateSearchResults({
235238
current: 1,
236-
filters: [...filters, { [name]: value }],
237-
resultsPerPage,
238-
searchTerm,
239-
sortDirection,
240-
sortField
239+
filters: [...filters, { [name]: value }]
241240
});
242241
};
243242

@@ -250,21 +249,11 @@ export default class AppSearchDriver {
250249
* @param value String field value for filter to remove
251250
*/
252251
removeFilter = (name, value) => {
253-
const {
254-
filters,
255-
resultsPerPage,
256-
searchTerm,
257-
sortDirection,
258-
sortField
259-
} = this.state;
252+
const { filters } = this.state;
260253
const updatedFilters = filters.filter(filter => !(filter[name] === value));
261254
this._updateSearchResults({
262255
current: 1,
263-
filters: updatedFilters,
264-
resultsPerPage,
265-
searchTerm,
266-
sortDirection,
267-
sortField
256+
filters: updatedFilters
268257
});
269258
};
270259

@@ -276,14 +265,9 @@ export default class AppSearchDriver {
276265
* @param resultsPerPage Integer
277266
*/
278267
setResultsPerPage = resultsPerPage => {
279-
const { filters, searchTerm, sortDirection, sortField } = this.state;
280268
this._updateSearchResults({
281269
current: 1,
282-
filters,
283-
resultsPerPage,
284-
searchTerm,
285-
sortDirection,
286-
sortField
270+
resultsPerPage
287271
});
288272
};
289273

@@ -295,14 +279,10 @@ export default class AppSearchDriver {
295279
* @param searchTerm String
296280
*/
297281
setSearchTerm = searchTerm => {
298-
const { resultsPerPage, sortDirection, sortField } = this.state;
299282
this._updateSearchResults({
300283
current: 1,
301284
filters: [],
302-
resultsPerPage,
303-
searchTerm,
304-
sortDirection,
305-
sortField
285+
searchTerm
306286
});
307287
};
308288

@@ -315,12 +295,8 @@ export default class AppSearchDriver {
315295
* @param sortDirection String ["asc"|"desc"]
316296
*/
317297
setSort = (sortField, sortDirection) => {
318-
const { filters, resultsPerPage, searchTerm } = this.state;
319298
this._updateSearchResults({
320299
current: 1,
321-
filters: filters,
322-
resultsPerPage,
323-
searchTerm,
324300
sortDirection,
325301
sortField
326302
});
@@ -355,21 +331,8 @@ export default class AppSearchDriver {
355331
* @param current Integer
356332
*/
357333
setCurrent = current => {
358-
const {
359-
filters,
360-
resultsPerPage,
361-
searchTerm,
362-
sortDirection,
363-
sortField
364-
} = this.state;
365-
366334
this._updateSearchResults({
367-
current,
368-
filters,
369-
resultsPerPage,
370-
searchTerm,
371-
sortDirection,
372-
sortField
335+
current
373336
});
374337
};
375338
}

0 commit comments

Comments
 (0)