import: name the contact an Update writes into
A bare "Update" never said which contact it would change,
and with three matches offered, that left a lot of range.
Now the button carries the name, or the id when there isn't one.

Assisted-by: Claude Opus 5.5 via Claude Code
change umxtxmmkkwxoovlqnuotkkyrsltpotul
commit aad062c6e06f5b91e10f5a0ffd85267969206011
author Alpha Chen <alpha@kejadlen.dev>
date
parent ypzsrysm
diff --git a/lib/pro_tacts/web/import.rb b/lib/pro_tacts/web/import.rb
index 5869760..b741266 100644
--- a/lib/pro_tacts/web/import.rb
+++ b/lib/pro_tacts/web/import.rb
@@ -246,10 +246,14 @@ module ProTacts
         # The submit says what it does — the import of this one
         # contact, or the update of the one it is folded into —
         # because this is the one editor in the app whose Save can
-        # create the record rather than amend it. The row beside it
-        # wears its check only once this has been pressed
-        # (Admin::ImportSidebar).
-        save: merge ? "Update" : "Import",
+        # create the record rather than amend it. An update names the
+        # contact it writes, the two modes differing nowhere else the
+        # eye lands: the fields over a fold are the same shape as over
+        # an arriving card, and the toggle above them
+        # (Admin::ImportTarget) a pill whose taken side lifts one step.
+        # The row beside it wears its check only once this has been
+        # pressed (Admin::ImportSidebar).
+        save: target ? "Update #{target.name || target.id}" : "Import",
         aside: Admin::ImportOriginal.new(card: original, dropped: merge ? dropped + merge.left : dropped),
         fields: import_picker(group, joined, named, member: target),
         lead: import_target(upload, index, matches, target),
diff --git a/test/pro_tacts/admin/test_import_pages.rb b/test/pro_tacts/admin/test_import_pages.rb
index dc1e7a8..6979833 100644
--- a/test/pro_tacts/admin/test_import_pages.rb
+++ b/test/pro_tacts/admin/test_import_pages.rb
@@ -899,7 +899,7 @@ class AdminImportPagesTest < Minitest::Test
       assert_includes last_response.body,
                       %(<a href="/import/#{id}/0?into=jane" role="tab" aria-selected="true">update Jane Booles</a>)
       assert_includes last_response.body, %(<input type="hidden" name="into" value="jane">)
-      assert_includes last_response.body, %(>Update</button>)
+      assert_includes last_response.body, %(>Update Jane Booles</button>)
     end
   end
 
@@ -949,7 +949,7 @@ class AdminImportPagesTest < Minitest::Test
       assert_includes last_response.body, %(value="jane@example.com")
       assert_includes last_response.body, %(value="+1 555 0100")
       assert_includes last_response.body, %(<li data-dropped><span>FN:Jane B. Booles</span>)
-      assert_includes last_response.body, %(>Update</button>)
+      assert_includes last_response.body, %(>Update Jane Booles</button>)
     end
   end