diff --git a/lib/mv_web/live/member_live/show/membership_fees_component.ex b/lib/mv_web/live/member_live/show/membership_fees_component.ex
index 946f249..1ce6f77 100644
--- a/lib/mv_web/live/member_live/show/membership_fees_component.ex
+++ b/lib/mv_web/live/member_live/show/membership_fees_component.ex
@@ -52,7 +52,7 @@ defmodule MvWeb.MemberLive.Show.MembershipFeesComponent do
<%!-- Vereinfacht: contact info when synced, or warning when API is configured but no contact --%>
<%= if Mv.Config.vereinfacht_configured?() do %>
- <%= if @member.vereinfacht_contact_id do %>
+ <%= if @vereinfacht_contact_present do %>
<.link
@@ -515,6 +515,7 @@ defmodule MvWeb.MemberLive.Show.MembershipFeesComponent do
|> assign(:can_create_cycle, can_create_cycle)
|> assign(:can_destroy_cycle, can_destroy_cycle)
|> assign(:can_update_cycle, can_update_cycle)
+ |> assign(:vereinfacht_contact_present, present_contact_id?(member.vereinfacht_contact_id))
|> assign_new(:interval_warning, fn -> nil end)
|> assign_new(:editing_cycle, fn -> nil end)
|> assign_new(:deleting_cycle, fn -> nil end)
@@ -1082,6 +1083,10 @@ defmodule MvWeb.MemberLive.Show.MembershipFeesComponent do
defp format_create_cycle_period(_date, _interval), do: ""
+ defp present_contact_id?(nil), do: false
+ defp present_contact_id?(id) when is_binary(id), do: String.trim(id) != ""
+ defp present_contact_id?(_), do: false
+
defp format_vereinfacht_error({:http, status, detail}) when is_binary(detail),
do: "HTTP #{status} – #{detail}"