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 `||=`.
26 lines
574 B
Plaintext
26 lines
574 B
Plaintext
<% url ||= request.path
|
|
csrf_url ||= url
|
|
text ||= "Delete"
|
|
confirmation ||= nil
|
|
confirmation_message ||= nil
|
|
redirect ||= request.path
|
|
method ||= "DELETE" %>
|
|
|
|
<%== render(
|
|
"components/button",
|
|
locals: {
|
|
text: text,
|
|
icon: "hero-trash",
|
|
extra_class: "delete-btn",
|
|
type: "danger",
|
|
attributes: {
|
|
"data-url" => url,
|
|
"data-csrf" => csrf_token(csrf_url, method),
|
|
"data-confirmation" => confirmation,
|
|
"data-confirmation-message" => confirmation_message,
|
|
"data-redirect" => redirect,
|
|
"data-method" => method
|
|
}
|
|
}
|
|
) %>
|