module DropzoneInput::Helpers
Public Instance Methods
dropzone(form, field, options = {}) { |: render('dropzone_input/default_content')| ... }
click to toggle source
# File lib/dropzone_input/helpers.rb, line 5 def dropzone(form, field, options = {}) # rubocop:disable Style/OptionHash class_list = options.delete(:class) class_list = ['dropzone', class_list].compact.join(' ') options[:max_file_size] /= 1.megabyte if options[:max_file_size] data = { controller: 'dropzone', dropzone_accepted_files: options.delete(:accepted_files) || ActiveStorage.variable_content_types.join(',') } %i( croppable file_added_event file_drop_event file_drop_id file_drop_over_id file_progress_event file_removed_event file_start_event file_success_event max_file_size max_files max_thumbnail_file_size parallel_uploads queue_complete_event thumbnail_height thumbnail_width ).each do |key| data["dropzone_#{key}".to_sym] = options.delete(key) if options.key?(key) end content_tag :div, options.merge(class: class_list, data: data) do render 'dropzone_input/dropzone', form: form, field: field do block_given? ? yield : render('dropzone_input/default_content') end end end