Closed catmando closed 6 years ago
This can be done without general performance impact (unlike removed solution) as follows:
# first remove current definitions from React::Component::Tags
React::Component::Tags.remove_method :DIV
React::Component::Tags.send(:remove_const, :DIV)
# now you can freely redefine
class React::Component::Tags::DIV < Hyperloop::Component
others :opts
render do
# default behavior is
# present ..tag-name.., params.opts, &children
# for example to add data-render-time to every div:
present :div, params.opts, data: {render_time: Time.now}, &children
end
end
For example Hypermesh needs to add some capability to INPUT tags.
Currently builtin tags are treated as special cases. Instead they should just be components like everything else, so that the render, and and hooks can be redefined.