Skip to content

Commit

Permalink
Change inputElement to inputComponent
Browse files Browse the repository at this point in the history
  • Loading branch information
moroshko committed Oct 13, 2016
1 parent d6308c6 commit b4bb698
Show file tree
Hide file tree
Showing 7 changed files with 158 additions and 115 deletions.
93 changes: 0 additions & 93 deletions .eslintrc

This file was deleted.

119 changes: 119 additions & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
module.exports = {
env: {
es6: true,
node: true,
browser: true,
mocha: true
},
parser: 'babel-eslint',
plugins: [
'react'
],
extends: [
'eslint:recommended'
],
rules: {
'array-callback-return': 2,
'brace-style': [2, '1tbs'],
'camelcase': [2, { 'properties': 'always' }],
'comma-dangle': [2, 'never'],
'comma-style': [2, 'last'],
'eol-last': 2,
'func-call-spacing': 2,
'indent': [2, 2, { 'SwitchCase': 1 }],
'key-spacing': [2, { 'beforeColon': false, 'afterColon': true }],
'keyword-spacing': 2,
'linebreak-style': [2, 'unix'],
'no-cond-assign': [2, 'always'],
'no-console': 2,
'no-global-assign': 2,
'no-multiple-empty-lines': [2, { 'max': 1 }],
'no-restricted-properties': [2,
{
object: 'describe',
property: 'only',
message: 'Please run all tests!'
},
{
object: 'describe',
property: 'skip',
message: 'Please run all tests!'
},
{
object: 'it',
property: 'only',
message: 'Please run all tests!'
},
{
object: 'it',
property: 'skip',
message: 'Please run all tests!'
}
],
'no-template-curly-in-string': 2,
'no-trailing-spaces': 2,
'no-unused-vars': 2,
'no-whitespace-before-property': 2,
'newline-after-var': [2, 'always'],
'object-curly-spacing': [2, 'always'],
'prefer-rest-params': 2,
'quote-props': [2, 'as-needed'],
'quotes': [2, 'single'],
'semi': [2, 'always'],
'space-before-blocks': [2, 'always'],
'space-before-function-paren': [2, 'never'],
'space-in-parens': [2, 'never'],
'template-curly-spacing': [2, 'never'],

'react/display-name': 0,
'react/forbid-prop-types': 0,
'react/no-comment-textnodes': 0,
'react/no-danger': 2,
'react/no-danger-with-children': 2,
'react/no-deprecated': 2,
'react/no-did-mount-set-state': 2,
'react/no-did-update-set-state': 2,
'react/no-direct-mutation-state': 2,
'react/no-find-dom-node': 2,
'react/no-is-mounted': 2,
'react/no-multi-comp': [2, { 'ignoreStateless': true }],
'react/no-render-return-value': 2,
'react/no-set-state': 0,
'react/no-string-refs': 2,
'react/no-unknown-property': 2,
'react/no-unused-prop-types': 0, // https://github.com/yannickcr/eslint-plugin-react/pull/835
'react/prefer-es6-class': [2, 'always'],
'react/prefer-stateless-function': 2,
'react/prop-types': 2,
'react/react-in-jsx-scope': 2,
'react/require-optimization': 0,
'react/require-render-return': 2,
'react/self-closing-comp': 2,
'react/sort-comp': 2,
'react/sort-prop-types': 0,
'react/style-prop-object': 2,

'react/jsx-boolean-value': [2, 'always'],
'react/jsx-closing-bracket-location': [2, { 'selfClosing': 'after-props', 'nonEmpty': 'after-props' }],
'react/jsx-curly-spacing': [2, 'never', { 'allowMultiline': true }],
'react/jsx-equals-spacing': [2, 'never'],
'react/jsx-filename-extension': [2, { 'extensions': ['.js'] }],
'react/jsx-first-prop-new-line': [2, 'multiline'],
'react/jsx-handler-names': 0,
'react/jsx-indent': [2, 2],
'react/jsx-indent-props': [2, 2],
'react/jsx-key': 2,
'react/jsx-max-props-per-line': 0,
'react/jsx-no-bind': 2,
'react/jsx-no-duplicate-props': 2,
'react/jsx-no-literals': 0,
'react/jsx-no-target-blank': 2,
'react/jsx-no-undef': 2,
'react/jsx-pascal-case': 2,
'react/jsx-sort-props': 0,
'react/jsx-space-before-closing': [2, 'always'],
'react/jsx-uses-react': 2,
'react/jsx-uses-vars': 2,
'react/jsx-wrap-multilines': 2
}
};
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,3 +2,4 @@ node_modules
dist
demo/dist
npm-debug.log
yarn.lock
37 changes: 29 additions & 8 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,15 +1,36 @@
<a href="https://codeship.com/projects/96953" target="_blank">
<img src="https://img.shields.io/codeship/6c79f8c0-2565-0133-4af8-72f090cba113/master.svg?style=flat-square"
alt="Build Status" />
</a>
<a href="https://www.bithound.io/github/moroshko/react-autowhatever" target="_blank">
<img src="https://www.bithound.io/github/moroshko/react-autowhatever/badges/score.svg" alt="bitHound Overall Score">
</a>
[![Build Status](https://img.shields.io/codeship/6c79f8c0-2565-0133-4af8-72f090cba113/master.svg?style=flat-square)](https://codeship.com/projects/96953)
[![bitHound Overall Score](https://www.bithound.io/github/moroshko/react-autowhatever/badges/score.svg)](https://www.bithound.io/github/moroshko/react-autowhatever)

[![Pull Requests stats](https://img.shields.io/issuestats/p/long/github/moroshko/react-autowhatever.svg?style=flat-square)](http://issuestats.com/github/moroshko/react-autowhatever)
[![Issues stats](https://img.shields.io/issuestats/i/long/github/moroshko/react-autowhatever.svg?style=flat-square)](http://issuestats.com/github/moroshko/react-autowhatever)

[![npm Downloads](https://img.shields.io/npm/dm/react-autowhatever.svg?style=flat-square)](https://npmjs.org/package/react-autowhatever)
[![npm Version](https://img.shields.io/npm/v/react-autowhatever.svg?style=flat-square)](https://npmjs.org/package/react-autowhatever)

# React Autowhatever

Accessible rendering layer for Autosuggest and Autocomplete components.

## Demo

Check out the <a href="http://react-autowhatever.js.org" target="_blank">Homepage</a> and the <a href="http://codepen.io/collection/nmZqgW" target="_blank">Codepen examples</a>.
Check out the [Homepage](http://react-autowhatever.js.org) and the [Codepen examples](http://codepen.io/collection/nmZqgW).

## Installation

```shell
yarn add react-autowhatever
```

or

```shell
npm install react-autowhatever --save
```

## Related

* [react-autosuggest](https://github.com/moroshko/react-autosuggest) - WAI-ARIA compliant React autosuggest component

## License

[MIT](http://moroshko.mit-license.org)
2 changes: 1 addition & 1 deletion demo/src/components/App/components/Example10/Example10.js
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ function Example(props) {
<Autowhatever
id={exampleId}
items={[]}
inputElement={CustomInput}
inputComponent={CustomInput}
inputProps={inputProps}
theme={theme} />
<SourceCodeLink file={file} />
Expand Down
11 changes: 5 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
"scripts": {
"start": "mkdir -p demo/dist && npm run copy-static-files && node server",
"lint": "eslint src test demo/src demo/standalone/app.js server.js webpack.*.js",
"test": "mocha 'test/**/*.test.js' --compilers js:babel-register --require test/setup.js",
"test": "mocha \"test/**/*.test.js\" --compilers js:babel-register --require test/setup.js",
"copy-static-files": "cp demo/src/index.html demo/dist/",
"dist": "rm -rf dist && mkdir dist && babel src -d dist",
"demo-dist": "rm -rf demo/dist && mkdir demo/dist && npm run copy-static-files && webpack --config webpack.gh-pages.config.js",
Expand All @@ -32,7 +32,7 @@
"react": "^0.14.7 || ^15.0.1"
},
"devDependencies": {
"autoprefixer": "^6.3.6",
"autoprefixer": "^6.5.1",
"autosuggest-highlight": "^3.0.0",
"babel-cli": "^6.16.0",
"babel-core": "^6.17.0",
Expand All @@ -45,13 +45,12 @@
"chai": "^3.5.0",
"css-loader": "^0.25.0",
"eslint": "^3.7.1",
"eslint-plugin-mocha": "^4.6.0",
"eslint-plugin-react": "^6.3.0",
"eslint-plugin-react": "^6.4.1",
"extract-text-webpack-plugin": "^1.0.1",
"jsdom": "^9.6.0",
"less": "^2.7.1",
"less-loader": "^2.2.3",
"mocha": "^3.1.0",
"mocha": "^3.1.2",
"openurl": "^1.1.1",
"postcss-loader": "^0.13.0",
"react": "^15.3.2",
Expand All @@ -64,7 +63,7 @@
"sinon": "^1.17.6",
"sinon-chai": "^2.8.0",
"style-loader": "^0.13.1",
"webpack": "^1.13.0",
"webpack": "^1.13.2",
"webpack-dev-server": "^1.16.2"
},
"files": [
Expand Down
10 changes: 3 additions & 7 deletions src/Autowhatever.js
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,7 @@ export default class Autowhatever extends Component {
shouldRenderSection: PropTypes.func, // This function gets a section and returns whether it should be rendered, or not.
renderSectionTitle: PropTypes.func, // This function gets a section and renders its title.
getSectionItems: PropTypes.func, // This function gets a section and returns its items, which will be passed into `renderItem` for rendering.
inputElement: PropTypes.oneOfType([ // This element is used to render the input
PropTypes.func,
PropTypes.string
]),
inputComponent: PropTypes.func, // When specified, it is used to render the input element
inputProps: PropTypes.object, // Arbitrary input props
itemProps: PropTypes.oneOfType([ // Arbitrary item props
PropTypes.object,
Expand Down Expand Up @@ -62,7 +59,6 @@ export default class Autowhatever extends Component {
getSectionItems: () => {
throw new Error('`getSectionItems` must be provided');
},
inputElement: 'input',
inputProps: emptyObject,
itemProps: emptyObject,
focusedSectionIndex: null,
Expand Down Expand Up @@ -309,15 +305,15 @@ export default class Autowhatever extends Component {
...theme(`react-autowhatever-${id}-items-container`, 'itemsContainer'),
ref: this.storeItemsContainerReference
};
const InputElement = this.props.inputElement;
const InputComponent = this.props.inputComponent || 'input';
const itemsContainer = renderItemsContainer({
...itemsContainerProps,
children: renderedItems
});

return (
<div {...containerProps}>
<InputElement {...inputProps} />
<InputComponent {...inputProps} />
{itemsContainer}
</div>
);
Expand Down

0 comments on commit b4bb698

Please sign in to comment.