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
|