feat: improve email copy UX with colored alerts and mailto button
All checks were successful
continuous-integration/drone/push Build is passing

- Green success alert for copied confirmation
- Blue info alert with BCC privacy tip
- Mailto button opens email program with BCC recipients
- Alerts stack vertically instead of overlapping
This commit is contained in:
Moritz 2025-12-02 11:42:11 +01:00
parent e2ace3d2a8
commit ba78a6ac7a
7 changed files with 159 additions and 94 deletions

View file

@ -11,37 +11,37 @@ msgstr ""
"Language: en\n"
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
#: lib/mv_web/components/core_components.ex:356
#: lib/mv_web/components/core_components.ex:360
#, elixir-autogen, elixir-format
msgid "Actions"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:212
#: lib/mv_web/live/member_live/index.html.heex:220
#: lib/mv_web/live/user_live/index.html.heex:72
#, elixir-autogen, elixir-format
msgid "Are you sure?"
msgstr ""
#: lib/mv_web/components/layouts.ex:80
#: lib/mv_web/components/layouts.ex:92
#: lib/mv_web/components/layouts.ex:82
#: lib/mv_web/components/layouts.ex:94
#, elixir-autogen, elixir-format
msgid "Attempting to reconnect"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:54
#: lib/mv_web/live/member_live/index.html.heex:158
#: lib/mv_web/live/member_live/index.html.heex:166
#: lib/mv_web/live/member_live/show.ex:59
#, elixir-autogen, elixir-format
msgid "City"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:214
#: lib/mv_web/live/member_live/index.html.heex:222
#: lib/mv_web/live/user_live/index.html.heex:74
#, elixir-autogen, elixir-format
msgid "Delete"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:206
#: lib/mv_web/live/member_live/index.html.heex:214
#: lib/mv_web/live/user_live/form.ex:265
#: lib/mv_web/live/user_live/index.html.heex:66
#, elixir-autogen, elixir-format
@ -55,7 +55,7 @@ msgid "Edit Member"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:47
#: lib/mv_web/live/member_live/index.html.heex:90
#: lib/mv_web/live/member_live/index.html.heex:98
#: lib/mv_web/live/member_live/show.ex:50
#: lib/mv_web/live/user_live/form.ex:46
#: lib/mv_web/live/user_live/index.html.heex:44
@ -71,7 +71,7 @@ msgid "First Name"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:51
#: lib/mv_web/live/member_live/index.html.heex:192
#: lib/mv_web/live/member_live/index.html.heex:200
#: lib/mv_web/live/member_live/show.ex:56
#, elixir-autogen, elixir-format
msgid "Join Date"
@ -83,28 +83,28 @@ msgstr ""
msgid "Last Name"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:16
#: lib/mv_web/live/member_live/index.html.heex:24
#, elixir-autogen, elixir-format
msgid "New Member"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:203
#: lib/mv_web/live/member_live/index.html.heex:211
#: lib/mv_web/live/user_live/index.html.heex:63
#, elixir-autogen, elixir-format
msgid "Show"
msgstr ""
#: lib/mv_web/components/layouts.ex:87
#: lib/mv_web/components/layouts.ex:89
#, elixir-autogen, elixir-format
msgid "Something went wrong!"
msgstr ""
#: lib/mv_web/components/layouts.ex:75
#: lib/mv_web/components/layouts.ex:77
#, elixir-autogen, elixir-format
msgid "We can't find the internet"
msgstr ""
#: lib/mv_web/components/core_components.ex:74
#: lib/mv_web/components/core_components.ex:78
#, elixir-autogen, elixir-format
msgid "close"
msgstr ""
@ -122,7 +122,7 @@ msgid "Exit Date"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:56
#: lib/mv_web/live/member_live/index.html.heex:124
#: lib/mv_web/live/member_live/index.html.heex:132
#: lib/mv_web/live/member_live/show.ex:61
#, elixir-autogen, elixir-format
msgid "House Number"
@ -141,14 +141,14 @@ msgid "Paid"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:50
#: lib/mv_web/live/member_live/index.html.heex:175
#: lib/mv_web/live/member_live/index.html.heex:183
#: lib/mv_web/live/member_live/show.ex:55
#, elixir-autogen, elixir-format
msgid "Phone Number"
msgstr ""
#: lib/mv_web/live/member_live/form.ex:57
#: lib/mv_web/live/member_live/index.html.heex:141
#: lib/mv_web/live/member_live/index.html.heex:149
#: lib/mv_web/live/member_live/show.ex:62
#, elixir-autogen, elixir-format
msgid "Postal Code"
@ -169,7 +169,7 @@ msgid "Saving..."
msgstr ""
#: lib/mv_web/live/member_live/form.ex:55
#: lib/mv_web/live/member_live/index.html.heex:107
#: lib/mv_web/live/member_live/index.html.heex:115
#: lib/mv_web/live/member_live/show.ex:60
#, elixir-autogen, elixir-format
msgid "Street"
@ -366,12 +366,12 @@ msgstr ""
msgid "Required"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:47
#: lib/mv_web/live/member_live/index.html.heex:55
#, elixir-autogen, elixir-format
msgid "Select all members"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:61
#: lib/mv_web/live/member_live/index.html.heex:69
#, elixir-autogen, elixir-format
msgid "Select member"
msgstr ""
@ -557,7 +557,7 @@ msgid "Toggle dark mode"
msgstr ""
#: lib/mv_web/live/components/search_bar_component.ex:15
#: lib/mv_web/live/member_live/index.html.heex:25
#: lib/mv_web/live/member_live/index.html.heex:33
#, elixir-autogen, elixir-format
msgid "Search..."
msgstr ""
@ -573,7 +573,7 @@ msgstr ""
msgid "Click to sort"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:73
#: lib/mv_web/live/member_live/index.html.heex:81
#, elixir-autogen, elixir-format, fuzzy
msgid "First name"
msgstr ""
@ -783,7 +783,7 @@ msgstr ""
msgid "Unlinking scheduled"
msgstr ""
#: lib/mv_web/live/member_live/index.ex:150
#: lib/mv_web/live/member_live/index.ex:159
#, elixir-autogen, elixir-format
msgid "Copied %{count} email address to clipboard"
msgid_plural "Copied %{count} email addresses to clipboard"
@ -800,12 +800,27 @@ msgstr ""
msgid "Copy emails"
msgstr ""
#: lib/mv_web/live/member_live/index.ex:141
#: lib/mv_web/live/member_live/index.ex:142
#, elixir-autogen, elixir-format
msgid "No email addresses found"
msgstr ""
#: lib/mv_web/live/member_live/index.ex:125
#: lib/mv_web/live/member_live/index.ex:126
#, elixir-autogen, elixir-format, fuzzy
msgid "No members selected"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:18
#, elixir-autogen, elixir-format
msgid "Open email program with BCC recipients"
msgstr ""
#: lib/mv_web/live/member_live/index.html.heex:21
#, elixir-autogen, elixir-format
msgid "Open in email program"
msgstr ""
#: lib/mv_web/live/member_live/index.ex:168
#, elixir-autogen, elixir-format
msgid "Tip: Paste email addresses into the BCC field for privacy compliance"
msgstr ""