22 lines
465 B
Crystal
22 lines
465 B
Crystal
# https://luckyframework.org/guides/frontend/html-forms#shared-components
|
|
|
|
class Shared::Field(T) < BaseComponent
|
|
include Lucky::CatchUnpermittedAttribute
|
|
|
|
needs attribute : Avram::PermittedAttribute(T)
|
|
needs label_text : String?
|
|
|
|
def render
|
|
label_for attribute, label_text
|
|
tag_defaults field: attribute do |tag_builder|
|
|
yield tag_builder
|
|
end
|
|
|
|
mount Shared::FieldErrors, attribute
|
|
end
|
|
|
|
def render
|
|
render &.text_input
|
|
end
|
|
end
|