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

chore(indexSelector): renamed to sortBySelector #599

Merged
merged 1 commit into from
Nov 16, 2015
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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;