Navigation Menu

Skip to content

v3.0.0

Compare
Choose a tag to compare
@bietkul bietkul released this 28 Aug 11:47
· 2529 commits to next since this release

🍾 ReactiveSearch 3.0 is our biggest release till date and includes new features (voice search, GraphQL support), major accessibility enhancements and changes that make it easier than ever to build production grade search UIs.

Thanks 🙌 to all the contributors for making this possible!

Controlled components

To enable effective control over the components, we now support defaultValue and value props. These new props enable better controlled and uncontrolled usage for all the ReactiveSearch components.

  • [115974e] Handle controlled behavior of component (#1111)
  • [82b81e0] Controlled behavior in range input (#1116)
  • [e3d02fd] Add triggerQuery in missing handlers
  • [8a2623d] Caret position in controlled behavior
  • [1ccff2a] Better controlled behavior in search components (#1021)
  • [d5d46f5] Controlled behavior with URL params

Render props

Most of the components support the onData with a custom render prop, onData can be used to listen for the data changes and render is just for the custom UI rendering. It resolves a major issue of v2 where we used to have only one function to handle both UI & data changes, creating side effects in that may create the infinite loop (re-rendering) issue.
Apart from that we added some new render prop for the better UI customization.

New components

  • [1ee3b34] We added StateProvider component which allows you to access the current state of your components along with the search results. For instance, you can use this component to create results/no results or query/no query pages. Read more here

Voice search

We added built-in support for the voice search functionality in search components (#1046).

GraphQL support

Added support for connecting to ElasticSearch GraphQL Server, and making queries in way similar to that of ElasticSearch REST API. Read more about graphQLUrl prop which can be used for connecting to the server here.

  • [6041fdb] Add support for graphQLUrl + transformResponse + headers via ssr-config (#1101)
  • [6b2c49c] Add support for graphql queries (#691)

Accessibility enhancements

Custom and default query DSL

ReactiveSearch v3 gives you more freedom to customize the elasticsearch query with the help of defaultQuery & customQuery prop which can be used to set quey options along with the actual query. Read more here.

  • [559be76] Add defaultQuery in List Components (#784)
  • [7ff7b00] Add support for customQuery in ReactiveComponent
  • [663418c] Add richer queryDSL support for base components
  • [b93232f] Add richer queryDSL support in list components
  • [c5a845b] Add richer queryDSL support in range components
  • [d9d619a] Add richer queryDSL support in reactive component
  • [6b25a2d] Fix defaultQuery bug in list components (#853)

Nested Field support

It can be used to set the nested mapping field that allows arrays of objects to be indexed in a way that they can be queried independently of each other.

  • [a3306ba] Add nestedField support for Range Components (#768)
  • [4cbb80b] Add nestedField support for Date Components (#766)
  • [806ad16] Add support for nestedField in Search Component (#765)
  • [b90ed7b] Add nestedField Support in Base Components (#764)
  • [3a25cca] Add support for nestedField in List Components (#763)

Breaking Changes

Miscellaneous

  • [21b4595] Add support for elasticsearch 7.0.0 (#948)
  • [f852667] Add includeNullValues prop to handle sparse data (#1108)
  • [422d37a] Add as prop to use custom tag for ReactiveBase
  • [5fe57e1] Add built-in support for search operators (#1006)
  • [6ad6449] Add click analytics in search components
  • [255e5a9] Add support for including unrated results in RatingsFilter (#1003)
  • [7c6241e] Add showLoader prop in reactive list
  • [c31c32c] Add searchStateHeader in ReactiveBase
  • [6a14c94] Add support for icon & dimmedIcon
  • [2d436b7] Add support for promoted results
  • [ba65090] Add parseDate prop (#882)
  • [1cfa37e] Make Date input editable (#881)
  • [9bd11d4] Add support for onChange prop in SelectedFilters #670
  • [24b5c79] Add support for defaultSortOption in result components #762 (#844)
  • [2b63195] Add getter + setter for query params in URL #824
  • [4d38c9f] Support category retrieval from URL (or) store in CategorySearch
  • [565be1f] Add transformResponse prop (#755)
  • [bad3213] Add click handler for search icon in search components (#747)
  • [3c9baa2] Add support for scrollOnChange (#729)
  • [e334059] Introduce showEndPage in ReactiveList to render last pages in pagination (#1022)

Bug Fixes

  • [729e500] DynamicRangeSlider component when no results found (#1104)
  • [f57e5b8] Fix onError & theme prop in CategorySearch
  • [9c841c7] Fix default size in query options when value is 0 (#1094)
  • [e196b36] Default value on clear (#1045)
  • [2a6cab9] Make scroll to top compatible in browser (#1031)
  • [d45038c] Promoted results
  • [4e2e6e5] Inconsistent results after clearing filters #1027
  • [9e19bf6] SSR fails with ReactiveList (#1024)
  • [b193605] Apply the should query irrespective of the showMissing prop
  • [3a2f922] Fix onData in ReactiveList (#1007)
  • [9620828] Typings for sort options in reactive list (#998)
  • [228731b] Prefer highlightField over dataField in search components
  • [00688bc] Use renderNoResults when no options found (#982)
  • [eba38cf] Fix showLoadMore issues in list components
  • [23a0b22] URL provider for undefined component
  • [243f470] Correctly fire pop state event on IE11 to prevent app crash.
  • [6e1cfaf] Continue parsing URL params even if one fails
  • [2ecb29c] Display SelectedFilter with custom URL params (#901)
  • [016f6d4] Maintain sort index on result updates (#898)
  • [672c6d5] Fix SSR with react-dom-server - (#513)
  • [db9b503] Fix nested aggs + composite aggs query - (#845)
  • [d9b2f26] Listen + handle url history changes on non-pop state events
  • [133cb97] Fix infinite loading + scrollOnChange behavior with results #830
  • [6bb36c7] Set query size to 0 for composite aggs (#745)
  • [54b38c3] Suggestions query in search components
  • [dac3f13] Fix categorySearch behavior - (#799)
  • [36de40f] Fix selectedFilters behavior in List controlled (#788)
  • [64c18ba] Fix selectedFilters behavior in Range components (#789)
  • [9aa2655] Fix selectedFilters and controlled behavior in base components (#785)
  • [84f0f67] Fix issues with static methods in SSR (#758)
  • [ae9a233] Fix range input validation onChange of slider (#725)

Performance

  • Add support for React version > 16.3
  • [0e8f39b] Avoid re rendering of result item, pagination & poweredBy Image (#1102)
  • [8f5ff25] Update URLSearchParams package (#1017)

Are you still using v2 and want to update, please check out the migration guide.