Skip to content

Commit

Permalink
fix(search-box): fix magnifier and reset customization
Browse files Browse the repository at this point in the history
  • Loading branch information
bgelineau authored and bobylito committed Jul 17, 2017
1 parent 2753683 commit 4adfade
Show file tree
Hide file tree
Showing 2 changed files with 68 additions and 9 deletions.
57 changes: 57 additions & 0 deletions src/widgets/search-box/__tests__/search-box-test.js
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,63 @@ describe('searchBox()', () => {
expect(helper.setQuery.called).toBe(true);
expect(helper.search.called).toBe(true);
});

it('should let the user define its own string template', () => {
// Given
widget = searchBox({
...defaultWidgetOptions,
reset: {
template: '<button type="reset">Foobar</button>',
},
});

// When
widget.init(defaultInitOptions);

// Then
expect(container.innerHTML).toContain('Foobar');
});

it('should not exist when it is disabled', () => {
// Given
widget = searchBox({
...defaultWidgetOptions,
reset: false,
});

// When
widget.init(defaultInitOptions);

// Then
expect($('button[type="reset"]').length).toEqual(0);
});
});

describe('magnifier', () => {
let defaultInitOptions;
let defaultWidgetOptions;

beforeEach(() => {
container = document.createElement('div');
defaultWidgetOptions = {container};
defaultInitOptions = {state, helper, onHistoryChange};
});

it('should let the user define its own string template', () => {
// Given
widget = searchBox({
...defaultWidgetOptions,
magnifier: {
template: '<div>Foobar</button>',
},
});

// When
widget.init(defaultInitOptions);

// Then
expect(container.innerHTML).toContain('Foobar');
});
});

describe('poweredBy', () => {
Expand Down
20 changes: 11 additions & 9 deletions src/widgets/search-box/search-box.js
Original file line number Diff line number Diff line change
Expand Up @@ -105,13 +105,15 @@ const renderer = ({
}
}

const resetButtonContainer = containerNode.tagName === 'INPUT'
? containerNode.parentNode
: containerNode;

// hide reset button when there is no query
const resetButton = resetButtonContainer.querySelector('button[type="reset"]');
resetButton.style.display = query && query.trim() ? 'block' : 'none';
if (reset) {
const resetButtonContainer = containerNode.tagName === 'INPUT'
? containerNode.parentNode
: containerNode;

// hide reset button when there is no query
const resetButton = resetButtonContainer.querySelector('button[type="reset"]');
resetButton.style.display = query && query.trim() ? 'block' : 'none';
}
};

const usage = `Usage:
Expand Down Expand Up @@ -328,7 +330,7 @@ function addReset(input, reset, {reset: resetTemplate}, clearFunction) {
};

const resetCSSClasses = {root: cx(bem('reset'), reset.cssClasses.root)};
const stringNode = processTemplate(resetTemplate, {cssClasses: resetCSSClasses});
const stringNode = processTemplate(reset.template, {cssClasses: resetCSSClasses});

const htmlNode = createNodeFromString(stringNode);
input.parentNode.appendChild(htmlNode);
Expand All @@ -347,7 +349,7 @@ function addMagnifier(input, magnifier, {magnifier: magnifierTemplate}) {
};

const magnifierCSSClasses = {root: cx(bem('magnifier'), magnifier.cssClasses.root)};
const stringNode = processTemplate(magnifierTemplate, {cssClasses: magnifierCSSClasses});
const stringNode = processTemplate(magnifier.template, {cssClasses: magnifierCSSClasses});

const htmlNode = createNodeFromString(stringNode);
input.parentNode.appendChild(htmlNode);
Expand Down

0 comments on commit 4adfade

Please sign in to comment.