Skip to content

Commit

Permalink
chore(indexSelector): renamed to sortBySelector
Browse files Browse the repository at this point in the history
Fix #485

BREAKING CHANGE: the `indexSelector` has been renamed to
`sortBySelector`.
  • Loading branch information
redox authored and vvo committed Nov 16, 2015
1 parent ccd9f83 commit df9b9ce
Show file tree
Hide file tree
Showing 8 changed files with 24 additions and 24 deletions.
2 changes: 1 addition & 1 deletion dev/app.js
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ search.addWidget(
);

search.addWidget(
instantsearch.widgets.indexSelector({
instantsearch.widgets.sortBySelector({
container: '#index-selector',
indices: [
{name: 'instant_search', label: 'Most relevant'},
Expand Down
10 changes: 5 additions & 5 deletions docs/documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -947,19 +947,19 @@ instantsearch.widgets.clearAll(options);

### Sort

#### indexSelector
#### sortBySelector

<div class="codebox-combo">

<img class="widget-icon pull-left" src="../img/icon-widget-index.svg">
This widget lets you select which index you want to use for the search. Since Algolia uses slave indices to deal with the different sort orders of a single dataset, this widget is particularly useful to switch between those sort orders.
This widget lets you change the sort order by letting you select which index you want to use for the search. That's the right way to go to switch between your slave indices.
{:.description}

<div class="code-box">
<div class="code-sample-snippet js-toggle-snippet">
{% highlight javascript %}
search.addWidget(
instantsearch.widgets.indexSelector({
instantsearch.widgets.sortBySelector({
container: '#index-selector-container',
indices: [
{name: 'instant_search', label: 'Most relevant'},
Expand All @@ -976,9 +976,9 @@ search.addWidget(
</div>
<div class="jsdoc js-toggle-jsdoc" style='display:none'>
{% highlight javascript %}
instantsearch.widgets.indexSelector(options);
instantsearch.widgets.sortBySelector(options);
{% endhighlight %}
{% include widget-jsdoc/indexSelector.md %}
{% include widget-jsdoc/sortBySelector.md %}
</div>
<div class="requirements js-toggle-requirements">
You need to create slave indices for every sort order you need, and
Expand Down
2 changes: 1 addition & 1 deletion docs/examples/amazon/search.js
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ search.addWidget(
);

search.addWidget(
instantsearch.widgets.indexSelector({
instantsearch.widgets.sortBySelector({
container: '#index-selector',
indices: [
{name: 'ikea', label: 'Featured'},
Expand Down
2 changes: 1 addition & 1 deletion lib/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ instantsearch.widgets = {
hierarchicalMenu: require('../widgets/hierarchical-menu/hierarchical-menu.js'),
hits: require('../widgets/hits/hits'),
hitsPerPageSelector: require('../widgets/hits-per-page-selector/hits-per-page-selector'),
indexSelector: require('../widgets/index-selector/index-selector'),
menu: require('../widgets/menu/menu.js'),
refinementList: require('../widgets/refinement-list/refinement-list.js'),
numericRefinementList: require('../widgets/numeric-refinement-list/numeric-refinement-list.js'),
Expand All @@ -21,6 +20,7 @@ instantsearch.widgets = {
priceRanges: require('../widgets/price-ranges/price-ranges.js'),
searchBox: require('../widgets/search-box/search-box'),
rangeSlider: require('../widgets/range-slider/range-slider'),
sortBySelector: require('../widgets/sort-by-selector/sort-by-selector'),
starRating: require('../widgets/star-rating/star-rating'),
stats: require('../widgets/stats/stats'),
toggle: require('../widgets/toggle/toggle')
Expand Down
2 changes: 1 addition & 1 deletion widgets/menu/__tests__/menu-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ import jsdom from 'mocha-jsdom';

import menu from '../menu';

describe('indexSelector call', () => {
describe('menu', () => {
jsdom({useEach: true});

it('throws an exception when no attributeName', () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,24 +8,24 @@ import jsdom from 'mocha-jsdom';
import expectJSX from 'expect-jsx';
expect.extend(expectJSX);

import indexSelector from '../index-selector';
import sortBySelector from '../sort-by-selector';
import Selector from '../../../components/Selector';

describe('indexSelector call', () => {
describe('sortBySelector call', () => {
jsdom({useEach: true});

it('throws an exception when no options', () => {
const container = document.createElement('div');
expect(indexSelector.bind(null, {container})).toThrow(/^Usage/);
expect(sortBySelector.bind(null, {container})).toThrow(/^Usage/);
});

it('throws an exception when no indices', () => {
const indices = [];
expect(indexSelector.bind(null, {indices})).toThrow(/^Usage/);
expect(sortBySelector.bind(null, {indices})).toThrow(/^Usage/);
});
});

describe('indexSelector()', () => {
describe('sortBySelector()', () => {
jsdom({useEach: true});

let ReactDOM;
Expand All @@ -42,8 +42,8 @@ describe('indexSelector()', () => {
autoHideContainer = sinon.stub().returns(Selector);
ReactDOM = {render: sinon.spy()};

indexSelector.__Rewire__('ReactDOM', ReactDOM);
indexSelector.__Rewire__('autoHideContainerHOC', autoHideContainer);
sortBySelector.__Rewire__('ReactDOM', ReactDOM);
sortBySelector.__Rewire__('autoHideContainerHOC', autoHideContainer);

container = document.createElement('div');
indices = [
Expand All @@ -54,7 +54,7 @@ describe('indexSelector()', () => {
root: 'custom-root',
item: 'custom-item'
};
widget = indexSelector({container, indices, cssClasses});
widget = sortBySelector({container, indices, cssClasses});
helper = {
getIndex: sinon.stub().returns('index-a'),
setIndex: sinon.spy(),
Expand Down Expand Up @@ -115,7 +115,7 @@ describe('indexSelector()', () => {
});

afterEach(() => {
indexSelector.__ResetDependency__('ReactDOM');
indexSelector.__ResetDependency__('autoHideContainerHOC');
sortBySelector.__ResetDependency__('ReactDOM');
sortBySelector.__ResetDependency__('autoHideContainerHOC');
});
});
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ let autoHideContainerHOC = require('../../decorators/autoHideContainer');

/**
* Instantiate a dropdown element to choose the current targeted index
* @function indexSelector
* @function sortBySelector
* @param {string|DOMElement} options.container CSS Selector or DOMElement to insert the widget
* @param {Array} options.indices Array of objects defining the different indices to choose from.
* @param {string} options.indices[0].name Name of the index to target
Expand All @@ -22,13 +22,13 @@ let autoHideContainerHOC = require('../../decorators/autoHideContainer');
* @return {Object}
*/
const usage = `Usage:
indexSelector({
sortBySelector({
container,
indices,
[cssClasses.{root,item}={}],
[autoHideContainer=false]
})`;
function indexSelector({
function sortBySelector({
container,
indices,
cssClasses: userCssClasses = {},
Expand All @@ -53,7 +53,7 @@ function indexSelector({
let currentIndex = helper.getIndex();
let isIndexInList = findIndex(indices, {name: currentIndex}) !== -1;
if (!isIndexInList) {
throw new Error('[indexSelector]: Index ' + currentIndex + ' not present in `indices`');
throw new Error('[sortBySelector]: Index ' + currentIndex + ' not present in `indices`');
}
},

Expand Down Expand Up @@ -85,4 +85,4 @@ function indexSelector({
};
}

module.exports = indexSelector;
module.exports = sortBySelector;

0 comments on commit df9b9ce

Please sign in to comment.