-
Notifications
You must be signed in to change notification settings - Fork 530
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
WIP next major #6382
Draft
aymeric-giraudet
wants to merge
36
commits into
master
Choose a base branch
from
next
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Draft
WIP next major #6382
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
BREAKING CHANGE : Hogan.js and raw HTML templates will no longer work. `bindEvent` also removed. --------- Co-authored-by: Haroen Viaene <[email protected]>
Haroenv
added
the
🚨 DO NOT MERGE
for a pull request that is ready to review, but should not be merged yet
label
Oct 8, 2024
This pull request is automatically built and testable in CodeSandbox. To see build info of the built libraries, click here or the icon next to each commit SHA. Latest deployment of this branch, based on commit d00cc09:
|
* fix(widgets): remove analytics widget The analytics widget has long been deprecated, and is removed with the insights middleware as alternative. You can use the `onEvent` hook to use a different service. BREAKING CHANGE: the analytics widget no longer exists * !fixup stories
Haroenv
force-pushed
the
next
branch
2 times, most recently
from
October 18, 2024 13:38
16ac735
to
3840673
Compare
The places widget has long been deprecated, and is removed without replacement as no places service exists anymore. As a userland solution if you're using the places widget, copy the removed `places.ts` file inside your own project and import it locally. BREAKING CHANGE: the places widget no longer exists
The answers widget has long been deprecated, and is removed without replacement as no answers service exists anymore. As a userland solution if you're using the answers widget, copy the removed answers files inside your own project and import it locally. BREAKING CHANGE: the answers widget no longer exists BREAKING CHANGE: the findAnswers in the helper no longer exists
Instead you can use `use` to add a middleware BREAKING CHANGE: EXPERIMENTAL_use function is replaced with use function
Haroenv
reviewed
Oct 18, 2024
* fix(methods): remove addDisjunctiveRefine BREAKING CHANGE: addDisjunctiveRefine is replaced with addDisjunctiveFacetRefinement * fix(methods): remove removeDisjunctiveRefine BREAKING CHANGE: removeDisjunctiveRefine is replaced with removeDisjunctiveFacetRefinement * fix(methods): remove addRefine BREAKING CHANGE: addRefine is replaced with addFacetRefinement * fix(methods): remove addExclude BREAKING CHANGE: addExclude is replaced with addFacetExclusion * fix(methods): remove removeRefine BREAKING CHANGE: removeRefine is replaced with removeFacetRefinement * fix(methods): remove removeExclude BREAKING CHANGE: removeExclude is replaced with removeFacetExclusion * fix(methods): remove toggleExclude BREAKING CHANGE: toggleExclude is replaced with toggleFacetExclusion * fix(methods): remove toggleRefine BREAKING CHANGE: toggleRefine is replaced with toggleFacetRefinement * fix(methods): remove toggleRefinement BREAKING CHANGE: toggleRefinement is replaced with toggleFacetRefinement * fix(methods): remove isExcluded, isDisjunctiveRefined, hasTag, isTagRefined These methods are available from the SearchParameters / helper.state instead BREAKING CHANGE: replace helper.isExcluded with helper.state.isExcludeRefined BREAKING CHANGE: replace helper.isDisjunctiveRefined with helper.state.isDisjunctiveFacetRefined BREAKING CHANGE: replace helper.hasTag with helper.state.isTagRefined BREAKING CHANGE: replace helper.isTagRefined with helper.state.isTagRefined * fix(methods): remove setCurrentPage BREAKING CHANGE: setCurrentPage is replaced with setPage * fix(methods): remove getCurrentPage BREAKING CHANGE: getCurrentPage is replaced with getPage * fix(methods): remove getFacetByName BREAKING CHANGE: getFacetByName (on search results) is replaced by calling results.xxxfacets.find(f => f.name === name) yourself (where xxxfacets is facets, disjunctiveFacets or hierarchicalFacets depending on your use case) * fix(methods): remove containsRefinement BREAKING CHANGE: containsRefinement is removed. Instead check the length of the arguments directly.
Haroenv
force-pushed
the
next
branch
2 times, most recently
from
October 23, 2024 08:26
c507965
to
47e48be
Compare
The widgets (and connectors) EXPERIMENTAL_dynamicWidgets, EXPERIMENTAL_configureRelatedItems are removed, and replaced with their non-experimental version. If you want to keep using the experimental behaviour of configure related items, you can copy the files from here into your project and continue using them. BREAKING CHANGE: experimental configure related items is replace with related products BREAKING CHANGE: experimental dynamic widgets is replaced with dynamic widgets
They are already in place in the instantsearch-codemods package BREAKING CHANGE: use codemods from `instantsearch-codemods` instead of instantsearch.js
BREAKING CHANGE: remove instantsearch.highlight, instantsearch.reverseHighlight, instantsearch.snippet, instantsearch.reverseSnippet. Instead use the `components` available from a template BREAKING CHANGE: remove instantsearch.insights, instead use sendEvent BREAKING CHANGE: remove instantsearch.getInsightsAnonymousUserToken
Haroenv
force-pushed
the
next
branch
4 times, most recently
from
October 24, 2024 11:48
ac63cc6
to
81599db
Compare
* feat: introduce `instantsearch-core` package * Apply suggestions from code review Co-authored-by: Dhaya <[email protected]> --------- Co-authored-by: Haroen Viaene <[email protected]> Co-authored-by: Dhaya <[email protected]>
Haroenv
force-pushed
the
next
branch
2 times, most recently
from
October 25, 2024 11:49
b591f0f
to
2823c40
Compare
1 task
* feat(babel): upgrade and set newer browser targets * fix @babel/traverse security issue * remove unused babel plugin * dedupe lockfile * add babel to vue-instantsearch * exclude helper docs from eslint rule --------- Co-authored-by: Haroen Viaene <[email protected]>
BREAKING CHANGE: __hitIndex is no longer populated
* refactor: remove findIndex polyfill * refactor: remove object spread polyfill * refactor: remove find and findIndex polyfill --------- Co-authored-by: Haroen Viaene <[email protected]>
The `insightsClient` prop is a remnant of an older implementation of insights, and no longer is needed. In this PR it's removed. BREAKING CHANGE: use `insights` prop of instantsearch instead of `insightsClient`
Haroenv
force-pushed
the
next
branch
4 times, most recently
from
December 9, 2024 13:53
f28d306
to
9c9eb9f
Compare
This signature is the easiest to detect and makes the required signature of the searchClient simpler (only `search`, `getRecommendations` and `addAlgoliaAgent` are now used). In this PR I also fix the signature of `search` in `SearchClient` type to make this usage fit reality. BREAKING CHANGE: in helper.searchForFacetFalues only the method client.search is used, none of the previous fallbacks.
bindEvent is no longer handled in the component since #6403 (https://github.com/algolia/instantsearch/pull/6403/files#diff-e7717d55fdbbc94c7dd996f78b6f0f860332545d6fa8f6b843c940798334532cL94) [FX-3191] BREAKING CHANGE: the `bindEvent` related functions are non longer usable, use `sendEvent` instead
The property that is exposed is called `hasMapMovedSinceLastRefine`, no longer `hasMapMoveSinceLastRefine` BREAKING CHANGE: replace `hasMapMoveSinceLastRefine` in your code base with `hasMapMovedSinceLastRefine`
In `@algolia/events`, errors are properly rethrown if they are thrown with `.emit('error', new Error("msg"))`, not if they are thrown with `.emit('error', { error: new Error('msg') })`. Therefore in InstantSearch and the helper, all errors are now properly thrown directly in the emit. [FX-3187] BREAKING CHANGE: if you have any `on('error'` handler that reads `event.error` from the callback, change that to just `error`
* fix(core): remove searchMetadata This is redundant with `search.status === 'stalled'`, so all relevant places have been removed: - rendering no longer sets searchMetadata - not used in connectSearchBox - Widgets use `instance.status === 'stalled'` instead [FX-3196] BREAKING CHANGE: `searchMetadata` is not exposed on rendering widgets, use `instance.status === 'stalled'` instead. * !fixup for vue * !fixup for TS * !fixup for return of isSearchStalled * !fixup
The old method has long been deprecated and has no usage inside instantsearch outside of running a warning. The warning on adding a widget with getWidgetState is still present, but slightly reworded. [FX-3197] BREAKING CHANGE: rename getWidgetState to getWidgetUiState in your custom widgets or connectors.
getCurrentURL is the alternative of getLocation in the history router. This is changed as it's possible to create a URL out of a string, but not a location. We also don't use any properties of the location that aren't also present in a URL. [FX-3191] BREAKING CHANGE: change from `getLocation` to `getCurrentURL`, and return a URL object. BREAKING CHANGE: createURL createURL now receives `currentURL` instead of `location` BREAKING CHANGE: parseURL createURL now receives `currentURL` instead of `location`
* feat(helper): persistHierarchicalRootCount: true BREAKING CHANGE: the default behaviour of the helper is now persistHierarchicalRootCount: true * fix(options): remove persistHierarchicalRootCount option It behaves as persistHierarchicalRootCount: true
We no longer document directly using the `query` for example in the ais-state-results component, read it either from state or results. [FX-3194] BREAKING CHANGE: connectStateResults is no longer exposed from Vue InstantSearch BREAKING CHANGE: the slot in ais-state-results receives an object with `results`, `state`, `status` and `error`, no longer direct access to e.g. `query`
* fix(connectors): replace hits for items In the past we have added an `items` alias for the previously added `hits`, so that all widgets are more consistent and the same widget would be usable between hits and relatedItems connectors for example. This is now continued with: - hits render property removed - infinite hits cache "write" receives `{ page, items }` instead of hits [FX-3207] BREAKING CHANGE: connectHits: `hits` property from render is replaced with `items` BREAKING CHANGE: connectInfiniteHits: `hits` property from render is replaced with `items` BREAKING CHANGE: infiniteHits: the cache.write function gets called with `{ page, items }` instead of `{ page, hits }` * bim
With preserveSharedStateOnUnmount behavior, UI State is the source of truth, when a widget gets removed, the UI State is evaluated again and the parameters result out of that. [FX-3192] Not done in this PR yet: - changed the signature of dispose (no more helper and state) - implement a similar behavior for recommend BREAKING CHANGE: The option `future.preserveSharedStateOnUnmount` is removed and now behaves as if it was set to `true`
Haroenv
force-pushed
the
next
branch
3 times, most recently
from
December 26, 2024 16:21
b37ba30
to
7ff6737
Compare
The files `connectors/*/connect*.ts` and `middlewares/create*Middleware.ts` files have the same name in instantsearch.js as in instantsearch-core, making file navigation annoying. This is now solved by re-exporting in the barrel file for those files only. BREAKING CHANGE: import only from `instantsearch.js/es/{connectors,middleware}` or `instantsearch-core`, not from no longer existing child files
In the past, `canRefine` has been introduced as a consistent way to check if any widget can be refined. There were previous largely overlapping pieces of information exposed which were deprecated. These are now removed. [FX-3195] BREAKING CHANGE: clearRefinements: replace `hasRefinements` with `canRefine` BREAKING CHANGE: hitsPerPage: replace `hasNoResults` with `!canRefine` BREAKING CHANGE: numericMenu: replace `hasNoResults` with `!canRefine` BREAKING CHANGE: ratingMenu: replace `hasNoResults` with `!canRefine` BREAKING CHANGE: sortBy: replace `hasNoResults` with `!canRefine`
Before this PR `canRefine` was always true for searchable. [FX-3190] BREAKING CHANGE: `canRefine` is false if there are no results from searchable if there's a query.
* fix(instantsearch): remove addWidget, removeWidget methdos BREAKING CHANGE: use removeWidgets, addWidgets instead of removeWidget, addWidget * !fixup
* feat(routing): change default of cleanUrlOnDispose to false In the vast majority of cases you're either never disposing InstantSearch, or the URL already gets cleared some other way (eg. through SPA navigation). This is why the new default for cleanUrlOnDispose is `false`. You'd still want to set this option to `true` if you're rendering instantsearch in a modal that should have the url cleared when that modal is closed. BREAKING CHANGE: default of cleanUrlOnDispose is false [FX-3213] * fix tests * Update packages/instantsearch-core/src/routing/historyRouter.ts Co-authored-by: Dhaya <[email protected]> --------- Co-authored-by: Dhaya <[email protected]>
This option is deprecated and all use cases are possible with onStateChange or other methods too [FX-3216] BREAKING CHANGE: replace searchFunction usage with onStateChange
This is the cause of the UMD e2e failure in `next`.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Work in progress branch for the next major version of InstantSearch (and its dependent packages).
This includes: