diff --git a/widgets/compose.go b/widgets/compose.go index 6e527cb..62aaafe 100644 --- a/widgets/compose.go +++ b/widgets/compose.go @@ -179,7 +179,8 @@ func (c *Composer) AddTemplate(template string, data interface{}) error { if err != nil { return err } - return c.addTemplate(bytes.NewReader(templateText)) + c.PrependContents(bytes.NewReader(templateText)) + return nil } func (c *Composer) AddTemplateFromString(template string, data interface{}) error { @@ -191,44 +192,7 @@ func (c *Composer) AddTemplateFromString(template string, data interface{}) erro if err != nil { return err } - return c.addTemplate(bytes.NewReader(templateText)) -} - -func (c *Composer) addTemplate(tmpl io.Reader) error { - reader, err := mail.CreateReader(tmpl) - if err != nil { - return errors.Wrap(err, "mail.CreateReader") - } - defer reader.Close() - - // populate header editors - header := reader.Header - mhdr := (*message.Header)(&header.Header) - for _, editor := range c.editors { - if mhdr.Has(editor.name) { - editor.input.Set(mhdr.Get(editor.name)) - mhdr.Del(editor.name) - } - } - - part, err := reader.NextPart() - if err != nil { - return errors.Wrap(err, "reader.NextPart") - } - c.PrependContents(part.Body) - - var ( - headers string - fds = mhdr.Fields() - ) - for fds.Next() { - headers += fmt.Sprintf("%s: %s\n", fds.Key(), fds.Value()) - } - if headers != "" { - headers += "\n" - } - - c.PrependContents(bytes.NewReader([]byte(headers))) + c.PrependContents(bytes.NewReader(templateText)) return nil }