From 984a42bbcf4b270fa9d6ff93a1b38990b091bd0b Mon Sep 17 00:00:00 2001 From: gjomoe Date: Mon, 26 Sep 2016 12:17:18 +0200 Subject: [PATCH] =?UTF-8?q?St=C3=B8tte=20for=20onBlur=20i=20dropdown=20rea?= =?UTF-8?q?ct=20komponent?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 ++++ package.json | 2 +- src/dropdown.js | 3 +++ src/dropdown.test.js | 7 +++++++ 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d465590567..bec28e4465 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.3.0 + +* Added onBlur support + ## 2.2.0 * Relaxing the peer dependency on `ffe-form` to allow both 1.x and 2.x diff --git a/package.json b/package.json index 2ac51a3889..a01d36cde6 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ffe-dropdown-react", - "version": "2.2.0", + "version": "2.3.0", "main": "lib/dropdown.js", "scripts": { "build": "babel -d lib/. --ignore=*.test.js src/. && npm run example", diff --git a/src/dropdown.js b/src/dropdown.js index 9ed9dd6978..547f84b171 100644 --- a/src/dropdown.js +++ b/src/dropdown.js @@ -12,6 +12,7 @@ function Dropdown({ className = '', label, onChange, + onBlur, selectedValue, defaultValue, children, @@ -31,6 +32,7 @@ function Dropdown({ className={`ffe-dropdown ${className}`} id={ domId } onChange={ onChange } + onBlur={ onBlur } value={ selectedValue } defaultValue={ defaultValue } aria-invalid={ invalid } @@ -54,6 +56,7 @@ Dropdown.propTypes = { id: PropTypes.string, label: PropTypes.string, onChange: PropTypes.func.isRequired, + onBlur: PropTypes.func, selectedValue: PropTypes.string, defaultValue: PropTypes.string, children: PropTypes.array, diff --git a/src/dropdown.test.js b/src/dropdown.test.js index 2b2ba2aa33..115b31486f 100644 --- a/src/dropdown.test.js +++ b/src/dropdown.test.js @@ -34,6 +34,13 @@ describe('', () => { assert.equal(spy.calledOnce, true); }); + it('should call the passed function on blur', () => { + const spy = sinon.spy(); + const wrapper = shallow(createDropdown({ onBlur: spy })); + wrapper.find('select').simulate('blur'); + assert.equal(spy.calledOnce, true); + }); + it('should apply the same id to