{t("tasks.no_tasks")}
@@ -175,27 +250,7 @@ export function TaskListView({ return (“{nicknames.map(n => n.name).join(", ")}”
)} @@ -213,7 +219,7 @@ export function ContactDetail({ contact, onEdit, onDelete, onAddToGroup, onDupli onCompose={onCompose} onDelete={onDelete} onAddToGroup={onAddToGroup} - onDuplicate={onDuplicate} + onMergeWith={onMergeWith} onMoveTo={onMoveTo} /> )} @@ -264,23 +270,14 @@ export function ContactDetail({ contact, onEdit, onDelete, onAddToGroup, onDupli })} {addresses.map((a, i) => { - const lines: string[] = []; - if (a.full || a.fullAddress) { - lines.push((a.full || a.fullAddress) as string); - } else if (a.components && a.components.length > 0) { - const joined = a.components.filter(c => c.kind !== 'separator').map(c => c.value).filter(Boolean).join(", "); - if (joined) lines.push(joined); - } else { - const parts = [a.street, [a.postcode, a.locality].filter(Boolean).join(" "), a.region, a.country] - .map(s => (typeof s === "string" ? s.trim() : "")) - .filter(Boolean) as string[]; - lines.push(...parts); - } + // One line per part, in the order of the address's country: + // "Hauptstraße 1" / "10000 Berlin" / "Germany". + const lines = formatAddressLines(a, locale); return ({t("duplicates_hint")}
++ {t("import.selected", { count: selected.size })} +
+