Skip to content

Commit

Permalink
chore(): Run prettier & upgrade eslint-config-algolia
Browse files Browse the repository at this point in the history
* chore(eslint): upgrade eslint-config-algolia
* chore(eslint): ignore dist files
* chore(eslint): overide default rules from algolia config
* style(eslint): run eslint --fix ✨
  • Loading branch information
Maxime Janton authored and Alexandre Stanislawski committed Jul 18, 2017
1 parent 6c9db8c commit d84c6ac
Show file tree
Hide file tree
Showing 171 changed files with 7,023 additions and 4,693 deletions.
5 changes: 5 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,8 @@ docs/
docs.old/
docgen/
node_modules/

dist-es6-module/
instantsearch.js
connectors.js
widgets.js
10 changes: 6 additions & 4 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
module.exports = {
"extends": ["algolia"],
"env": {
"jest": true
extends: ['algolia', 'algolia/jest', 'algolia/react'],
rules: {
"no-param-reassign": 0,
"import/no-extraneous-dependencies": 0,
"react/no-string-refs": 1
}
};
}
10 changes: 4 additions & 6 deletions dev/app/custom-widgets/jquery/clearAll.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,10 @@
/* eslint-disable import/default */
import instantsearch from '../../../../index.js';

const renderFn = ({
refine,
hasRefinements,
createURL,
widgetParams: {containerNode},
}, isFirstRendering) => {
const renderFn = (
{ refine, hasRefinements, widgetParams: { containerNode } },
isFirstRendering
) => {
if (isFirstRendering) {
const markup = window.$('<button id="custom-clear-all">Clear All</button>');
containerNode.append(markup);
Expand Down
70 changes: 37 additions & 33 deletions dev/app/custom-widgets/jquery/currentRefinedValues.js
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
/* eslint-disable import/default */
import instantsearch from '../../../../index.js';

const renderFn = ({
clearAllClick,
clearAllURL,
createURL,
refine,
refinements,
widgetParams: {containerNode},
}, isFirstRendering) => {
const renderFn = (
{
clearAllClick,
clearAllURL,
createURL,
refine,
refinements,
widgetParams: { containerNode },
},
isFirstRendering
) => {
// append initial markup on first rendering
// ----------------------------------------
if (isFirstRendering) {
Expand All @@ -23,9 +26,7 @@ const renderFn = ({
if (refinements && refinements.length > 0) {
// append clear all link
// ---------------------
containerNode
.find('#custom-crv-clear-all-container')
.html(`
containerNode.find('#custom-crv-clear-all-container').html(`
<a
href="${clearAllURL}"
class="ais-current-refined-values--clear-all"
Expand All @@ -46,27 +47,33 @@ const renderFn = ({
// ---------------------------
const list = refinements
.map(value => {
const {computedLabel, count} = value;
const { computedLabel, count } = value;

const afterCount = count ?
`<span class="pull-right facet-count">${count}</span>`
const afterCount = count
? `<span class="pull-right facet-count">${count}</span>`
: '';

switch (true) {
case value.attributeName === 'price_range':
return `Price range: ${computedLabel.replace(/(\d+)/g, '$$$1')} ${afterCount}`;
case value.attributeName === 'price_range':
return `Price range: ${computedLabel.replace(
/(\d+)/g,
'$$$1'
)} ${afterCount}`;

case value.attributeName === 'price':
return `Price: ${computedLabel.replace(/(\d+)/g, '$$$1')}`;
case value.attributeName === 'price':
return `Price: ${computedLabel.replace(/(\d+)/g, '$$$1')}`;

case value.attributeName === 'free_shipping':
return computedLabel === 'true' ? `Free shipping ${afterCount}` : '';
case value.attributeName === 'free_shipping':
return computedLabel === 'true'
? `Free shipping ${afterCount}`
: '';

default:
return `${computedLabel} ${afterCount}`;
default:
return `${computedLabel} ${afterCount}`;
}
})
.map((content, index) => `
.map(
(content, index) => `
<li>
<a
href="${createURL(refinements[index])}"
Expand All @@ -75,22 +82,19 @@ const renderFn = ({
${content}
</a>
</li>
`);
`
);

containerNode.find('ul').html(list.join(''));

// bind click events on links
// --------------------------
containerNode
.find('li > a')
.each(function(index) {
window.$(this)
.off('click')
.on('click', e => {
e.preventDefault();
refine(refinements[index]);
});
containerNode.find('li > a').each(function(index) {
window.$(this).off('click').on('click', e => {
e.preventDefault();
refine(refinements[index]);
});
});

// show container
// --------------
Expand Down
48 changes: 20 additions & 28 deletions dev/app/custom-widgets/jquery/hierarchicalMenu.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@ const formatMenuEntry = (createURL, lvl = 0) => item => {
`;

if (
item.isRefined === true
&& Array.isArray(item.data)
&& item.data.length > 0
) {
item.isRefined === true &&
Array.isArray(item.data) &&
item.data.length > 0
) {
return `
<div ${lvl === 0 ? 'class="hierarchical-categories-list"' : ''}>
<a
Expand All @@ -22,7 +22,8 @@ const formatMenuEntry = (createURL, lvl = 0) => item => {
>
<strong>${item.label}</strong> ${countHTML}
</a>
<div class="hierarchical-categories-list ais-hierarchical-menu--list__lvl${lvl + 1}">
<div class="hierarchical-categories-list ais-hierarchical-menu--list__lvl${lvl +
1}">
${item.data.map(formatMenuEntry(createURL, lvl + 1)).join('')}
</div>
</div>
Expand All @@ -44,13 +45,10 @@ const formatMenuEntry = (createURL, lvl = 0) => item => {
`;
};

const renderFn = ({
createURL,
items,
refine,
widgetParams: {containerNode},
currentRefinement,
}, isFirstRendering) => {
const renderFn = (
{ createURL, items, refine, widgetParams: { containerNode } },
isFirstRendering
) => {
if (isFirstRendering) {
const markup = window.$(`
<div class="facet-title">Custom hierarchical</div>
Expand All @@ -60,29 +58,23 @@ const renderFn = ({
}

// remove event listeners before replacing markup
containerNode
.find('a[data-refine-value]')
.each(function() { window.$(this).off('click'); });
containerNode.find('a[data-refine-value]').each(function() {
window.$(this).off('click');
});

if (items && items.length > 0) {
// replace markup with items
const menuItems = items
.map(formatMenuEntry(createURL))
.join('');
const menuItems = items.map(formatMenuEntry(createURL)).join('');

containerNode
.find('#custom-hierarchical-menu__container')
.html(menuItems);
containerNode.find('#custom-hierarchical-menu__container').html(menuItems);

// bind links with `data-refine-value`
containerNode
.find('a[data-refine-value]')
.each(function() {
window.$(this).on('click', e => {
e.preventDefault();
refine(window.$(this).data('refine-value'));
});
containerNode.find('a[data-refine-value]').each(function() {
window.$(this).on('click', e => {
e.preventDefault();
refine(window.$(this).data('refine-value'));
});
});
}
};

Expand Down
14 changes: 7 additions & 7 deletions dev/app/custom-widgets/jquery/hits.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
/* eslint-disable import/default */
import instantsearch from '../../../../index.js';

const renderFn = ({hits, widgetParams: {containerNode}}) => {
const renderFn = ({ hits, widgetParams: { containerNode } }) => {
containerNode.html(
hits.map(hit => `
hits.map(
hit => `
<div class="hit">
<div class="media">
<a
Expand All @@ -21,15 +22,14 @@ const renderFn = ({hits, widgetParams: {containerNode}}) => {
<h4>${hit._highlightResult.name.value}</h4>
<p>${hit._highlightResult.description.value}</p>
${
hit.free_shipping
${hit.free_shipping
? '<span class="badge pull-right">Free shipping</span>'
: ''
}
: ''}
</div>
</div>
</div>
`)
`
)
);
};

Expand Down
26 changes: 12 additions & 14 deletions dev/app/custom-widgets/jquery/hitsPerPageSelector.js
Original file line number Diff line number Diff line change
@@ -1,33 +1,31 @@
/* eslint-disable import/default */
import instantsearch from '../../../../index.js';

const renderFn = ({
items,
refine,
widgetParams: {containerNode},
}, isFirstRendering) => {
const renderFn = (
{ items, refine, widgetParams: { containerNode } },
isFirstRendering
) => {
if (isFirstRendering) {
const markup = '<select></select>';
containerNode.append(markup);
}

const itemsHTML = items.map(({value, label, isRefined}) => `
const itemsHTML = items.map(
({ value, label, isRefined }) => `
<option
value="${value}"
${isRefined ? 'selected' : ''}
>
${label}
</option>
`);
`
);

containerNode
.find('select')
.html(itemsHTML);
containerNode.find('select').html(itemsHTML);

containerNode
.find('select')
.off('change')
.on('change', e => { refine(e.target.value); });
containerNode.find('select').off('change').on('change', e => {
refine(e.target.value);
});
};

export default instantsearch.connectors.connectHitsPerPage(renderFn);
36 changes: 18 additions & 18 deletions dev/app/custom-widgets/jquery/index.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
export {default as clearAll} from './clearAll';
export {default as currentRefinedValues} from './currentRefinedValues';
export {default as hierarchicalMenu} from './hierarchicalMenu';
export {default as menu} from './menu';
export {default as pagination} from './pagination';
export {default as hitsPerPageSelector} from './hitsPerPageSelector';
export {default as hits} from './hits';
export {default as refinementList} from './refinementList';
export {default as numericSelector} from './numericSelector';
export {default as numericRefinementList} from './numericRefinementList';
export {default as priceRanges} from './priceRanges';
export {default as searchBox} from './searchBox';
export {default as sortBySelector} from './sortBySelector';
export {default as starRating} from './starRating';
export {default as stats} from './stats';
export {default as toggle} from './toggle';
export {default as infiniteHits} from './infiniteHits';
export {default as showMoreMenu} from './showMoreMenu';
export { default as clearAll } from './clearAll';
export { default as currentRefinedValues } from './currentRefinedValues';
export { default as hierarchicalMenu } from './hierarchicalMenu';
export { default as menu } from './menu';
export { default as pagination } from './pagination';
export { default as hitsPerPageSelector } from './hitsPerPageSelector';
export { default as hits } from './hits';
export { default as refinementList } from './refinementList';
export { default as numericSelector } from './numericSelector';
export { default as numericRefinementList } from './numericRefinementList';
export { default as priceRanges } from './priceRanges';
export { default as searchBox } from './searchBox';
export { default as sortBySelector } from './sortBySelector';
export { default as starRating } from './starRating';
export { default as stats } from './stats';
export { default as toggle } from './toggle';
export { default as infiniteHits } from './infiniteHits';
export { default as showMoreMenu } from './showMoreMenu';
14 changes: 7 additions & 7 deletions dev/app/custom-widgets/jquery/infiniteHits.js
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@ const renderFn = ({
hits,
showMore,
isLastPage,
widgetParams: {containerNode},
widgetParams: { containerNode },
}) => {
const hitsHTML = hits.map(hit => `
const hitsHTML = hits.map(
hit => `
<div class="hit">
<div class="media">
<a
Expand All @@ -25,15 +26,14 @@ const renderFn = ({
<h4>${hit._highlightResult.name.value}</h4>
<p>${hit._highlightResult.description.value}</p>
${
hit.free_shipping
${hit.free_shipping
? '<span class="badge pull-right">Free shipping</span>'
: ''
}
: ''}
</div>
</div>
</div>
`);
`
);

containerNode.find('button[data-show-more]').off('click');
containerNode.html(hitsHTML);
Expand Down
Loading

0 comments on commit d84c6ac

Please sign in to comment.