From e5ae62b5afeff6ada8767f3e7c39d2ad2dafa137 Mon Sep 17 00:00:00 2001 From: Jan Biedermann Date: Fri, 18 Oct 2019 00:34:26 +0200 Subject: [PATCH] Unify event handler support. --- ruby/lib/lucid_component/event_handler.rb | 21 --------------------- ruby/lib/react/component/event_handler.rb | 4 +++- 2 files changed, 3 insertions(+), 22 deletions(-) delete mode 100644 ruby/lib/lucid_component/event_handler.rb diff --git a/ruby/lib/lucid_component/event_handler.rb b/ruby/lib/lucid_component/event_handler.rb deleted file mode 100644 index f186305..0000000 --- a/ruby/lib/lucid_component/event_handler.rb +++ /dev/null @@ -1,21 +0,0 @@ -module LucidComponent - module EventHandler - def event_handlers - @event_handlers ||= [] - end - - def event_handler(name, &block) - event_handlers << name - %x{ - self.lucid_react_component.prototype[name] = function(event, info) { - if (typeof event === "object") { - #{ruby_event = ::React::SyntheticEvent.new(`event`)}; - } else { - #{ruby_event = `event`}; - } - #{`this.__ruby_instance`.instance_exec(ruby_event, `info`, &block)}; - } - } - end - end -end diff --git a/ruby/lib/react/component/event_handler.rb b/ruby/lib/react/component/event_handler.rb index fad4c92..d03b036 100644 --- a/ruby/lib/react/component/event_handler.rb +++ b/ruby/lib/react/component/event_handler.rb @@ -8,7 +8,7 @@ def event_handlers def event_handler(name, &block) event_handlers << name %x{ - self.react_component.prototype[name] = function(event, info) { + var fun = function(event, info) { if (typeof event === "object") { #{ruby_event = ::React::SyntheticEvent.new(`event`)}; } else { @@ -16,6 +16,8 @@ def event_handler(name, &block) } #{`this.__ruby_instance`.instance_exec(ruby_event, `info`, &block)}; } + if (self.lucid_react_component) { self.lucid_react_component.prototype[name] = fun; } + else { self.react_component.prototype[name] = fun; } } end end