Class: Coco::App::Elements::ImagePickerButton
- Inherits:
-
Component
- Object
- ViewComponent::Base
- Component
- Coco::App::Elements::ImagePickerButton
- Defined in:
- app/components/coco/app/elements/image_picker_button/image_picker_button.rb
Constant Summary
Constants included from Concerns::AcceptsTagAttributes
Concerns::AcceptsTagAttributes::TAG_ATTRIBUTE_NAMES
Instance Attribute Summary collapse
-
#input_name ⇒ Object
readonly
Returns the value of attribute input_name.
-
#src ⇒ Object
readonly
Returns the value of attribute src.
Instance Method Summary collapse
- #alpine_props ⇒ Object
- #button_text ⇒ Object
- #direct_upload? ⇒ Boolean
-
#initialize(src: nil, input_name: nil, form_builder: nil, direct_upload: false, **kwargs) ⇒ ImagePickerButton
constructor
A new instance of ImagePickerButton.
- #input ⇒ Object
Methods included from Coco::AppHelper
#coco_button, #coco_button_group, #coco_color_picker_button, #coco_confirm_button, #coco_dropdown_button, #coco_fields, #coco_form_button, #coco_form_for, #coco_form_with, #coco_image_picker_button, #coco_link, #coco_menu_button, #coco_notice, #coco_seamless_textarea, #coco_snackbar, #coco_system_banner, #coco_toast, #coco_toolbar
Methods included from Concerns::AcceptsOptions
#accepted_options, #get_option_group
Methods inherited from Component
#accepts_options?, after_initialize, before_initialize, before_render, new
Methods included from Coco::AlpineHelper
Methods included from TagHelper
#prefix_attr_keys, #random_id, #style_str
Methods included from ComponentHelper
#coco_component, #resolve_component
Methods included from BookHelper
#coco_editable_slide, #coco_media_slide
Methods included from BaseHelper
#coco_embed, #coco_icon, #coco_image, #coco_placeholder, #coco_tag
Methods included from Concerns::HasName
Methods included from Concerns::AcceptsTagAttributes
Constructor Details
#initialize(src: nil, input_name: nil, form_builder: nil, direct_upload: false, **kwargs) ⇒ ImagePickerButton
Returns a new instance of ImagePickerButton.
34 35 36 37 38 39 40 41 42 43 44 |
# File 'app/components/coco/app/elements/image_picker_button/image_picker_button.rb', line 34 def initialize(src: nil, input_name: nil, form_builder: nil, direct_upload: false, **kwargs) @src = src @form_builder = form_builder @input_name = input_name @direct_upload = direct_upload @size = kwargs.fetch(:size, :default)&.to_sym if @size.in?(Coco::App::Elements::Button::SIZE_ALIASES.keys) && !kwargs.key?(:resize) @size, @resize = Coco::App::Elements::Button::SIZE_ALIASES.fetch(@size) end end |
Instance Attribute Details
#input_name ⇒ Object (readonly)
Returns the value of attribute input_name.
32 33 34 |
# File 'app/components/coco/app/elements/image_picker_button/image_picker_button.rb', line 32 def input_name @input_name end |
#src ⇒ Object (readonly)
Returns the value of attribute src.
32 33 34 |
# File 'app/components/coco/app/elements/image_picker_button/image_picker_button.rb', line 32 def src @src end |
Instance Method Details
#alpine_props ⇒ Object
50 51 52 53 54 55 56 57 |
# File 'app/components/coco/app/elements/image_picker_button/image_picker_button.rb', line 50 def alpine_props { image: { name: (src.present? && File.basename(src)), data: src } } end |
#button_text ⇒ Object
79 80 81 |
# File 'app/components/coco/app/elements/image_picker_button/image_picker_button.rb', line 79 def text || content end |
#direct_upload? ⇒ Boolean
46 47 48 |
# File 'app/components/coco/app/elements/image_picker_button/image_picker_button.rb', line 46 def direct_upload? @direct_upload end |
#input ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'app/components/coco/app/elements/image_picker_button/image_picker_button.rb', line 59 def input if input_name kwargs = { class: "picker-file-input", "x-ref": "fileInput", direct_upload: @direct_upload } if direct_upload? && !helpers.respond_to?(:rails_direct_uploads_url) kwargs[:data] = {direct_upload_url: @direct_upload} end if @form_builder @form_builder.file_field(input_name, **kwargs) else file_field_tag(input_name, **kwargs) end end end |