Module: ReactEmailRails::ActionMailer

Extended by:
ActiveSupport::Concern
Defined in:
lib/react_email_rails/action_mailer.rb

Instance Method Summary collapse

Instance Method Details

#mail(headers = {}, &block) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/react_email_rails/action_mailer.rb', line 14

def mail(headers = {}, &block)
  return super unless headers.is_a?(Hash) && headers.key?(:react)

  headers = headers.dup
  react = headers.delete(:react)
  props = headers.delete(:props) if headers.key?(:props)

  component, resolved_props = ReactEmailRails::PropsResolver.new(self).resolve(react, props)
  render_options = ReactEmailRails.configuration.resolve_render_options(self)
  rendered = ReactEmailRails.render(component:, props: resolved_props, render_options:)

  super(headers) do |format|
    format.html { rendered.html }
    format.text { rendered.text } if rendered.text.present?
    yield(format) if block
  end
end