fix: strip commas from email before contacts (#257)

Elshad Humbatli created

Change summary

config/cache.go |  2 +-
main.go         | 14 ++++++++++----
2 files changed, 11 insertions(+), 5 deletions(-)

Detailed changes

config/cache.go 🔗

@@ -153,7 +153,7 @@ func AddContact(name, email string) error {
 		return nil
 	}
 
-	email = strings.ToLower(strings.TrimSpace(email))
+	email = strings.ToLower(strings.Trim(strings.TrimSpace(email), ","))
 	name = strings.TrimSpace(name)
 
 	cache, err := LoadContactsCache()

main.go 🔗

@@ -752,10 +752,16 @@ func (m *mainModel) Update(msg tea.Msg) (tea.Model, tea.Cmd) {
 		go func() {
 			// Save the recipient as a contact
 			if msg.To != "" {
-				// Parse "Name <email>" format
-				name, email := parseEmailAddress(msg.To)
-				if err := config.AddContact(name, email); err != nil {
-					log.Printf("Error saving contact: %v", err)
+				recipients := strings.Split(msg.To, ",")
+				for _, r := range recipients {
+					r = strings.TrimSpace(r)
+					if r == "" {
+						continue
+					}
+					name, email := parseEmailAddress(r)
+					if err := config.AddContact(name, email); err != nil {
+						log.Printf("Error saving contact: %v", err)
+					}
 				}
 			}
 			// Delete the draft since email is being sent