We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent a04940a commit e5c16deCopy full SHA for e5c16de
lib/react/opal/native_element.rb
@@ -19,5 +19,31 @@ def initialize(native)
19
def element_type
20
self.JS[:type]
21
end
22
+
23
+ def on(event_name)
24
+ name = event_name.to_s.camelize
25
26
+ prop_key = "on#{name}"
27
28
+ if React::Event::BUILT_IN_EVENTS.include?(prop_key)
29
+ callback = %x{
30
+ function(event){
31
+ #{yield React::Event.new(`event`)}
32
+ }
33
34
+ else
35
36
+ function(){
37
+ #{yield *Array(`arguments`)}
38
39
40
+ end
41
42
+ new_prop = `{}`
43
+ `new_prop[prop_key] = #{callback}`
44
45
+ cloned = `React.cloneElement(#{self}, #{new_prop})`
46
+ React::NativeElement.new cloned
47
48
49
0 commit comments