@@ -14,40 +14,18 @@ module.exports = function(context) {
14
14
var eventHandlerPrefix = configuration . eventHandlerPrefix || 'handle' ;
15
15
var eventHandlerPropPrefix = configuration . eventHandlerPropPrefix || 'on' ;
16
16
17
- var EVENT_HANDLER_REGEX = new RegExp ( '^((this\. props\.' + eventHandlerPropPrefix + ')'
17
+ var EVENT_HANDLER_REGEX = new RegExp ( '^((props\.' + eventHandlerPropPrefix + ')'
18
18
+ '|((.*\.)?' + eventHandlerPrefix + ')).+$' ) ;
19
19
var PROP_EVENT_HANDLER_REGEX = new RegExp ( '^' + eventHandlerPropPrefix + '.+$' ) ;
20
20
21
- /**
22
- * Get full prop value for a handler, i.e. `this.props.<name>`
23
- * @param {Object } node.value.expression for JSXAttribute
24
- * @return {String } Full prop value
25
- */
26
- function rebuildPropValue ( valueNode ) {
27
- var valueNodeObject = valueNode . object ;
28
- var subObjectType = valueNodeObject . object ? valueNodeObject . object . type : '' ;
29
- var propertyName = valueNodeObject . property && valueNodeObject . property . name ? valueNodeObject . property . name : '' ;
30
- var propValue = valueNode . property && valueNode . property . name ? valueNode . property . name : '' ;
31
-
32
- if ( propertyName . length ) {
33
- propValue = propertyName + '.' + propValue ;
34
- }
35
-
36
- if ( subObjectType === 'ThisExpression' ) {
37
- propValue = 'this.' + propValue ;
38
- }
39
-
40
- return propValue ;
41
- }
42
-
43
21
return {
44
22
JSXAttribute : function ( node ) {
45
23
if ( ! node . value || ! node . value . expression || ! node . value . expression . object ) {
46
24
return ;
47
25
}
48
26
49
27
var propKey = typeof node . name === 'object' ? node . name . name : node . name ;
50
- var propValue = rebuildPropValue ( node . value . expression ) ;
28
+ var propValue = context . getSource ( node . value . expression ) . replace ( / ^ t h i s \. / , '' ) ;
51
29
52
30
var propIsEventHandler = PROP_EVENT_HANDLER_REGEX . test ( propKey ) ;
53
31
var propFnIsNamedCorrectly = EVENT_HANDLER_REGEX . test ( propValue ) ;
0 commit comments