Some arguments for UI components are optional, so we don't have to provide all of them when using them. I had added a `defined?(name)` check to use default values when an argument is not provided. Jeremy pointed out that it was working by accident. In the code `name = defined?(name)`, `defined?(name)` always returns `local-variable` because it’s on the right-hand side of the assignment, while the local variable is on the left-hand side. When we remove the `defined?` calls, the remaining code is equivalent to `||=`.
23 lines
569 B
Text
23 lines
569 B
Text
<% confirm ||= false
|
|
if confirm
|
|
label ||= "#{rodauth.password_confirm_label}#{rodauth.input_field_label_suffix}"
|
|
name ||= rodauth.password_confirm_param
|
|
autocomplete ||= "new-password"
|
|
else
|
|
label ||= "#{rodauth.password_label}#{rodauth.input_field_label_suffix}"
|
|
name ||= rodauth.password_param
|
|
autocomplete ||= rodauth.password_field_autocomplete_value
|
|
end %>
|
|
|
|
<%== render(
|
|
"components/form/text",
|
|
locals: {
|
|
name: name,
|
|
type: "password",
|
|
label: label,
|
|
attributes: {
|
|
required: true,
|
|
autocomplete: autocomplete
|
|
}
|
|
}
|
|
) %>
|