Class: AtomicView::Components::FieldComponent
- Inherits:
-
ViewComponent::Form::FieldComponent
- Object
- ViewComponent::Form::FieldComponent
- AtomicView::Components::FieldComponent
- Defined in:
- lib/atomic_view/components/field_component.rb
Instance Attribute Summary collapse
-
#tag_klass ⇒ Object
readonly
Returns the value of attribute tag_klass.
Instance Method Summary collapse
- #container_html_class ⇒ Object
- #html_class ⇒ Object
-
#initialize(form, object_name, method_name, options = {}, tag_klass = ActionView::Helpers::Tags::TextField) ⇒ FieldComponent
constructor
A new instance of FieldComponent.
- #left_section ⇒ Object
- #left_section? ⇒ Boolean
- #left_section_addon? ⇒ Boolean
- #left_section_interaction? ⇒ Boolean
- #right_section ⇒ Object
- #right_section? ⇒ Boolean
- #right_section_addon? ⇒ Boolean
- #right_section_interaction? ⇒ Boolean
Constructor Details
#initialize(form, object_name, method_name, options = {}, tag_klass = ActionView::Helpers::Tags::TextField) ⇒ FieldComponent
Returns a new instance of FieldComponent.
6 7 8 9 |
# File 'lib/atomic_view/components/field_component.rb', line 6 def initialize(form, object_name, method_name, = {}, tag_klass = ActionView::Helpers::Tags::TextField) super(form, object_name, method_name, ) @tag_klass = tag_klass end |
Instance Attribute Details
#tag_klass ⇒ Object (readonly)
Returns the value of attribute tag_klass.
4 5 6 |
# File 'lib/atomic_view/components/field_component.rb', line 4 def tag_klass @tag_klass end |
Instance Method Details
#container_html_class ⇒ Object
24 25 26 27 28 29 30 |
# File 'lib/atomic_view/components/field_component.rb', line 24 def container_html_class class_names( "relative rounded-lg shadow-sm", {"flex" => left_section_addon? || left_section_interaction? || right_section_addon? || right_section_interaction?}, [:container_class] ) end |
#html_class ⇒ Object
11 12 13 14 15 16 17 18 19 20 21 22 |
# File 'lib/atomic_view/components/field_component.rb', line 11 def html_class class_names( *%W[block w-full appearance-none h-9 min-w-0 z-10 flex-1 rounded-lg border-0 py-1 text-base shadow-sm ring-1], "disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-zinc-500 disabled:ring-zinc-200", "bg-transparent dark:bg-white/5 text-zinc-950 ring-zinc-950/10 dark:ring-white/10 placeholder:text-zinc-500 dark:text-white focus:ring-neutral-700 focus:border-zinc-950/20 dark:focus:ring-white/20", "pl-10" => left_section? && !(left_section_addon? || left_section_interaction?), "pr-10" => right_section? && !(right_section_addon? || right_section_interaction?), "shadow-none rounded-none rounded-r-lg" => left_section_addon? || left_section_interaction?, "shadow-none rounded-none rounded-l-lg" => right_section_addon? || right_section_interaction?, "text-red-900 ring-red-300 placeholder:text-red-300 focus:ring-red-500" => method_errors? ) end |
#left_section ⇒ Object
32 33 34 |
# File 'lib/atomic_view/components/field_component.rb', line 32 def left_section [:left_section] end |
#left_section? ⇒ Boolean
36 37 38 |
# File 'lib/atomic_view/components/field_component.rb', line 36 def left_section? left_section.present? end |
#left_section_addon? ⇒ Boolean
40 41 42 |
# File 'lib/atomic_view/components/field_component.rb', line 40 def left_section_addon? [:left_section_as_addon].present? end |
#left_section_interaction? ⇒ Boolean
44 45 46 |
# File 'lib/atomic_view/components/field_component.rb', line 44 def left_section_interaction? [:left_section_as_interaction].present? end |
#right_section ⇒ Object
48 49 50 |
# File 'lib/atomic_view/components/field_component.rb', line 48 def right_section [:right_section] || method_errors? && raw(icon("exclamation-circle", variant: :mini, options: {class: "size-5 text-red-500"})) end |
#right_section? ⇒ Boolean
52 53 54 |
# File 'lib/atomic_view/components/field_component.rb', line 52 def right_section? right_section.present? end |
#right_section_addon? ⇒ Boolean
56 57 58 |
# File 'lib/atomic_view/components/field_component.rb', line 56 def right_section_addon? [:right_section_as_addon].present? end |
#right_section_interaction? ⇒ Boolean
60 61 62 |
# File 'lib/atomic_view/components/field_component.rb', line 60 def right_section_interaction? [:right_section_as_interaction].present? end |