FormComponent: persist vereinfacht_required_field? in socket

Assign in assign_form so validate/save enforce server-side without
relying on render assigns; use socket.assigns.vereinfacht_required_field?
This commit is contained in:
Moritz 2026-02-23 22:49:52 +01:00
parent bbededf3b9
commit cca2ca4632
Signed by: moritz
GPG key ID: 1020A035E5DD0824

View file

@ -209,7 +209,7 @@ defmodule MvWeb.MemberFieldLive.FormComponent do
end end
required = required =
socket.assigns[:vereinfacht_required_field?] || socket.assigns.vereinfacht_required_field? ||
if Map.has_key?(member_field_params, "required") do if Map.has_key?(member_field_params, "required") do
TypeParsers.parse_boolean(member_field_params["required"]) TypeParsers.parse_boolean(member_field_params["required"])
else else
@ -245,7 +245,7 @@ defmodule MvWeb.MemberFieldLive.FormComponent do
end end
required = required =
socket.assigns[:vereinfacht_required_field?] || socket.assigns.vereinfacht_required_field? ||
if Map.has_key?(member_field_params, "required") do if Map.has_key?(member_field_params, "required") do
TypeParsers.parse_boolean(member_field_params["required"]) TypeParsers.parse_boolean(member_field_params["required"])
else else
@ -291,6 +291,13 @@ defmodule MvWeb.MemberFieldLive.FormComponent do
normalized_required = VisibilityConfig.normalize(required_config) normalized_required = VisibilityConfig.normalize(required_config)
show_in_overview = Map.get(normalized_visibility, member_field, true) show_in_overview = Map.get(normalized_visibility, member_field, true)
vereinfacht_required? = Mv.Config.vereinfacht_configured?() vereinfacht_required? = Mv.Config.vereinfacht_configured?()
# Persist in socket so validate/save can enforce server-side without relying on render assigns
socket =
assign(
socket,
:vereinfacht_required_field?,
vereinfacht_required_field?(%{member_field: member_field})
)
# Email always required; Vereinfacht-required fields when integration active; else from settings # Email always required; Vereinfacht-required fields when integration active; else from settings
required = required =