From cc02b71db68416245904bff8d554ef10b0939cba Mon Sep 17 00:00:00 2001 From: Alex S Date: Tue, 5 Sep 2017 16:05:03 +0200 Subject: [PATCH] fix(sffv): no error when not providing noResults and no results (#2310) When there was no results and the template is not provided, is.js would trigger an error. Fix #2087 --- dev/app/init-builtin-widgets.js | 19 +++++++++++++++++++ .../defaultTemplates.searchForFacetValue.js | 3 +++ .../refinement-list/refinement-list.js | 3 ++- 3 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 src/widgets/refinement-list/defaultTemplates.searchForFacetValue.js diff --git a/dev/app/init-builtin-widgets.js b/dev/app/init-builtin-widgets.js index 9e364b0c84..12fa8bf22e 100644 --- a/dev/app/init-builtin-widgets.js +++ b/dev/app/init-builtin-widgets.js @@ -293,6 +293,25 @@ export default () => { ); }) ) + .add( + 'with search inside items (using the default noResults template)', + wrapWithHits(container => { + window.search.addWidget( + instantsearch.widgets.refinementList({ + container, + attributeName: 'brand', + operator: 'or', + limit: 10, + templates: { + header: 'Searchable brands', + }, + searchForFacetValues: { + placeholder: 'Find other brands...', + }, + }) + ); + }) + ) .add( 'with operator `and`', wrapWithHits(container => { diff --git a/src/widgets/refinement-list/defaultTemplates.searchForFacetValue.js b/src/widgets/refinement-list/defaultTemplates.searchForFacetValue.js new file mode 100644 index 0000000000..8d89e87b81 --- /dev/null +++ b/src/widgets/refinement-list/defaultTemplates.searchForFacetValue.js @@ -0,0 +1,3 @@ +export default { + noResults: 'No results', +}; diff --git a/src/widgets/refinement-list/refinement-list.js b/src/widgets/refinement-list/refinement-list.js index efaa750390..b513a4eead 100644 --- a/src/widgets/refinement-list/refinement-list.js +++ b/src/widgets/refinement-list/refinement-list.js @@ -6,6 +6,7 @@ import filter from 'lodash/filter'; import RefinementList from '../../components/RefinementList/RefinementList.js'; import connectRefinementList from '../../connectors/refinement-list/connectRefinementList.js'; import defaultTemplates from './defaultTemplates.js'; +import sffvDefaultTemplates from './defaultTemplates.searchForFacetValue.js'; import getShowMoreConfig from '../../lib/show-more/getShowMoreConfig.js'; import { @@ -253,7 +254,7 @@ export default function refinementList( ? prefixKeys('show-more-', showMoreConfig.templates) : {}; const searchForValuesTemplates = searchForFacetValues - ? searchForFacetValues.templates + ? searchForFacetValues.templates || sffvDefaultTemplates : {}; const allTemplates = { ...templates,