Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: InstantSearch.js v3 #2954

Closed
wants to merge 101 commits into from
Closed

feat: InstantSearch.js v3 #2954

wants to merge 101 commits into from

Conversation

bobylito
Copy link
Contributor

@bobylito bobylito commented May 30, 2018

Main pull requests for all the big changes coming in V3.

@algobot
Copy link
Contributor

algobot commented May 30, 2018

Deploy preview for algolia-instantsearch ready!

Built with commit 71f69af

https://deploy-preview-2954--algolia-instantsearch.netlify.com

@bobylito bobylito added this to the 3.0 milestone Jun 1, 2018
@francoischalifour
Copy link
Member

francoischalifour commented Sep 7, 2018

InstantSearch 3 specs

Widgets

This table keeps track of the update on the specs and their respective pull requests.

Widget PR
breadcrumb #3115
clearRefinements #3114
currentRefinements #3190
geoSearch #3138
hierarchicalMenu #3182
hits #3096
hitsPerPageSelector #3125
infiniteHits #3096
menu #3180
menuSelect #3109
numericMenu #3162
numericSelector #3183
pagination #3119
priceRanges #3124
rangeInput #3098
rangeSlider #3126
refinementList #3152
searchBox #3127
sortBySelector #3120
ratingMenu #3161
stats #3097
toggle #3135
highlight #3132
snippet #3134
poweredBy #3164
panel

API

Feature PR
Search Client #3133
Drop urlSync #3143
Drop transformData #3241

francoischalifour and others added 20 commits September 12, 2018 15:20
* feat(range-input): rename attribute option
* feat(range-input): rename CSS classes
* feat(range-input): update markup
* docs(migration): add migration
* feat(stats): apply changes
* docs(migrations): fix CSS
* feat(stats): remove `currency` class
* feat(stats): apply v3 specs
* docs(migration): add migration
* feat(stats): remove autoHideContainer
* feat(stats): rename component
* feat(hits): apply v3 spec
* docs(migration): add migration
* feat(hits): apply changes
* feat(menuSelect): implement is.css
* fix(dev-novel): update new options for menu-select
* fix(menu-select): correct case for widget name in class name
* fix(menu-select): leverage template for options
* feat(menu-select): fix markup to use Template and generalize classnames
* fix: use plural for seeAllOption
* docs(migration): clearRefinements migration\
* refactor: clearAll -> clearRefinements
* fix(clearRefinements): excludeAttributes -> excludedAttributes
* feat(ClearRefinements): update markup for is.css
* feat(clearRefinements): new options
* docs(clearRefinements): provide initial refinements in dev-novel
* test: consistent testing with description
* chore: ClearRefinements all the things
* fix: replace black / white lists with better names
* chore: cleanup autoHideContainer related options
* doc: wording for getRefinements and clearRefinemetns jsDoc
* feat(pagination): apply changes

* docs(migrations): add widget

* feat(pagination): add stories
* feat(sort-by): apply changes

* feat(sort-by): rename widget

* feat(migration): add widget
* feat(price-ranges): remove widget
* docs(migration): update migration
* feat(hits-per-page): apply changes
* feat(hits-per-page): update Selector component
* feat(hits-per-page): rename widget
* feat(hits-per-page): update story import
* docs(migration): update migration
* feat(highlight): add highlight helper
* feat(highlight): add Hits stories
* feat(highlight): rename helper story
* test(utils): test getPropertyByPath
* refactor(highlight): use Regex literals
* test(hits): test highlight with hits
* test(utils): add test for getPropertyByPath
* feat(highlight): throw error if uncorrect format
* refactor(helpers): create helpers folder
* feat(highlight): replace <em> by <mark>
* fix(Hits): fix highlight import
* chore(refinement-list): remove ESLint statement
* Update source code
* Update documentation
* Update README
* Update demos
* Update community website
We used to have named exports because we exposed `RawComponent` in addition to `Component` as a default export. We don't anymore since we dropped the `AutoHideContainer`.
Disable functional tests during the development of `feat/3.0` so that Travis passes.
It's currently broken because of some new markup.
samouss and others added 3 commits October 26, 2018 11:21
francoischalifour and others added 20 commits October 26, 2018 15:37
* chore: remove CSS source

* chore(docgen): remove InstantSearch styles
<a name="2.10.3"></a>

* **deps:** unpin production dependencies ([257ecb7](257ecb7))
* **getRefinements:** provide attributeName for type: query ([6a58b99](6a58b99)), closes [#3205](#3205)
* **InstantSearch:** avoid useless search on addWidgets ([#3178](#3178)) ([961626d](961626d))
* **numericselector:** default value can be undefined ([#3139](#3139)) ([39d22f5](39d22f5))

* **utils:** add warn function ([#3147](#3147)) ([9de87bb](9de87bb))
Following #3190 (comment), we decided to remove the connectors + jQuery stories for maintainability and usefulness purpose.

These stories will get replaced by the new Algolia documentation.
`autoHideContainer` and `headerFooter` have been removed.
This removes `transformData`-related source code.

The example using `transformData` have been kept because they will be updated in other PRs.
* chore(package): update description

* chore(package): add "widget" keyword

* chore(readme): update description
This replaces the previous `attributeName` option to `attribute`.
This moves all components to their own folder for consistency.
This removes the alphabetic sorting of refinements in CurrentRefinement items. The refinements are sorted based on when the user refines them (default behavior).

Note that the CurrentRefinements items sorting is determined by the order of the [`getRefinements` statements](https://github.com/algolia/instantsearch.js/blob/011d47909894837f2c2da5088bc81803135d201b/src/lib/utils.js#L249). The query being lastly added.

The tests ignore the order of the CurrentRefinement items because there's no specifications for that.
This applies the items transformation after escaping. It fixes issues when we transform highlighted values.

An example could be that the highlighted value gets uppercased, and therefore changes the default tag `__ais-highlight__` to `__AIS-HIGHLIGHT__` which doesn't get caught by the regex to be replaced by a `mark` tag.

The fix is implemented for both Hits and InfiniteHits connectors.

Closes #3250

> Note: the other connectors apply `transformItems` as last step already.
This adds a default story to CurrentRefinements so that existing links in the documentation redirect to the correct story.
* feat(poweredBy): update logo

* feat(stories): change background color
@francoischalifour
Copy link
Member

Closing in favor of #3264.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants