29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/react_email_rails/action_mailer.rb', line 29
def mail( = {}, &block)
return super unless .is_a?(Hash)
return super if .empty? && @_mail_was_called
react = .key?(:react) ? [:react] : compute_default(self.class.default[:react])
return super unless react
props = [:props]
deep_merge = [:deep_merge]
= .except(:react, :props, :deep_merge)
component, resolved_props = ReactEmailRails::PropsResolver.new(self).resolve(react, props)
resolved_props = ReactEmailRails::SharedProps.new(self).merge_into(
resolved_props,
deep_merge: react_email_deep_merge?(deep_merge),
)
super() do |format|
rendered = react_email_render(component, resolved_props)
format.html { rendered.html }
format.text { rendered.text } if rendered.text.present?
yield(format) if block
end
end
|