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

change the children's key to be unique to able html mouse events #46

Open
wants to merge 25 commits into
base: coverall
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
91b5f40
Merge pull request #22 from helior/coverall
helior Feb 29, 2016
5e4f13f
0.3.1
helior Feb 29, 2016
1e28f3a
Bump react peer dependency to allow v14 and v15
cesarandreu Apr 8, 2016
e0a9ef1
Use React.createElement to allow usage with React 15.0.
admmasters Apr 8, 2016
3ce6a0d
update for React v15
hosmelq Apr 8, 2016
dbb58fd
Implement solution from #25
hosmelq Apr 8, 2016
f93acfb
Merge pull request #24 from cesarandreu/patch-1
helior Apr 12, 2016
70f621b
Merge pull request #25 from admmasters/react-15-0
helior Apr 12, 2016
c4d6ca6
Update README.md
Apr 22, 2016
f19ec9d
Merge branch 'master' of github.com:hosmelq/react-highlighter
hosmelq Apr 27, 2016
428473c
Merge pull request #26 from hosmelq/master
helior May 7, 2016
a8b6adc
Merge pull request #27 from kennyt/patch-1
helior May 7, 2016
7ca481d
0.3.2
helior May 11, 2016
dcfa789
bump deps
hosmelq Jul 5, 2016
6e4d097
blacklist custom props
hosmelq Jul 5, 2016
c845300
Merge pull request #30 from hosmelq/master
helior Jul 15, 2016
ff81d4c
0.3.3
helior Jul 16, 2016
ec2ae09
Fix deprecation warnings
charliecochran Apr 24, 2017
7abda7d
Merge pull request #37 from charliecochran/master
helior May 27, 2017
0c13388
0.3.4
helior May 27, 2017
3d8306e
Resolves #41; move devDependencies to run-time dependencies.
helior Jun 9, 2017
3397da9
0.3.5
helior Jun 9, 2017
ab4443e
Resolves #40; add "files" declaration for UMD goodness
helior Jun 9, 2017
b80b25e
0.4.0
helior Jun 9, 2017
cac0495
change the children's key to be unique to able html mouse events
Aug 17, 2017
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
6 changes: 6 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

12 changes: 12 additions & 0 deletions .idea/react-highlighter.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

175 changes: 175 additions & 0 deletions .idea/workspace.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ npm install react-highlighter --save
```

## Usage
```
```js
var Highlight = require('react-highlighter');

<Highlight search="brown">The quick brown fox jumps over the lazy dog</Highlight>
Expand Down
30 changes: 17 additions & 13 deletions lib/highlighter.js
Original file line number Diff line number Diff line change
@@ -1,22 +1,24 @@
var React = require('react');
var RegExpPropType = require('./regExpPropType');
var escapeStringRegexp = require('escape-string-regexp');
var blacklist = require('blacklist');
var createReactClass = require('create-react-class');
var PropTypes = require('prop-types');


var Highlighter = React.createClass({displayName: "Highlighter",
var Highlighter = createReactClass({displayName: "Highlighter",
count: 0,

propTypes: {
search: React.PropTypes.oneOfType([
React.PropTypes.string,
React.PropTypes.number,
React.PropTypes.bool,
search: PropTypes.oneOfType([
PropTypes.string,
PropTypes.number,
PropTypes.bool,
RegExpPropType
]).isRequired,
caseSensitive: React.PropTypes.bool,
matchElement: React.PropTypes.string,
matchClass: React.PropTypes.string,
matchStyle: React.PropTypes.object
caseSensitive: PropTypes.bool,
matchElement: PropTypes.string,
matchClass: PropTypes.string,
matchStyle: PropTypes.object
},

getDefaultProps: function() {
Expand All @@ -29,7 +31,9 @@ var Highlighter = React.createClass({displayName: "Highlighter",
},

render: function() {
return React.DOM.span(React.__spread({}, this.props), this.renderElement(this.props.children));
var props = blacklist(this.props, 'search', 'caseSensitive', 'matchElement', 'matchClass', 'matchStyle');

return React.createElement('span', props, this.renderElement(this.props.children));
},

/**
Expand Down Expand Up @@ -170,7 +174,7 @@ var Highlighter = React.createClass({displayName: "Highlighter",
*/
renderPlain: function(string) {
this.count++;
return React.DOM.span({'key': this.count}, string);
return React.DOM.span({'key': string}, string);
},

/**
Expand All @@ -184,7 +188,7 @@ var Highlighter = React.createClass({displayName: "Highlighter",
renderHighlight: function(string) {
this.count++;
return React.DOM[this.props.matchElement]({
key: this.count,
key: string,
className: this.props.matchClass,
style: this.props.matchStyle
}, string);
Expand Down
29 changes: 18 additions & 11 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,14 @@
{
"name": "react-highlighter",
"version": "0.3.0",
"version": "0.4.0",
"description": "Highlight select fragments of texts",
"main": "lib/highlighter.js",
"files": [
"lib",
"dist"
],
"peerDependencies": {
"react": "^0.14.0"
"react": "^0.14.0 || ^15.0.0"
},
"scripts": {
"test": "_mocha",
Expand All @@ -29,16 +33,19 @@
},
"homepage": "https://github.com/helior/react-highlighter",
"devDependencies": {
"chai": "^2.1.2",
"coveralls": "^2.11.2",
"istanbul": "^0.4.1",
"jsdom": "^3.1.2",
"mocha": "^2.3.4",
"react": "^0.14.0",
"react-dom": "^0.14.0",
"webpack": "^1.7.3"
"chai": "^3.5.0",
"coveralls": "^2.11.9",
"istanbul": "^0.4.4",
"jsdom": "^9.4.0",
"mocha": "^2.5.3",
"react": "^15.2.0",
"react-dom": "^15.2.0",
"webpack": "^1.13.1"
},
"dependencies": {
"escape-string-regexp": "^1.0.4"
"blacklist": "^1.1.2",
"create-react-class": "^15.5.2",
"escape-string-regexp": "^1.0.5",
"prop-types": "^15.5.8"
}
}
6 changes: 3 additions & 3 deletions test/testHighlighter.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
var React = require('react/addons');
var TestUtils = React.addons.TestUtils;
var React = require('react');
var TestUtils = require('react-dom/test-utils');
var ReactDOM = require('react-dom');
var expect = require('chai').expect;
var Highlight = require('..');
Expand Down Expand Up @@ -57,7 +57,7 @@ describe('Highlight element', function() {
var element = React.createElement(Highlight, {search: 'Seek', matchStyle: { color: 'red' }}, 'Hide and Seek');
var node = TestUtils.renderIntoDocument(element);
var matches = TestUtils.scryRenderedDOMComponentsWithTag(node, 'strong');
expect(matches[0].getAttribute('style')).to.eql('color:red;');
expect(matches[0].getAttribute('style')).to.eql('color: red;');
});

it('should support passing props to parent element', function() {
Expand Down