class Avo::Fields::Common::Files::ListViewerComponent

def available_view_types

def available_view_types
  [:list, :grid]
end

def classes

def classes
  base_classes = "py-4 rounded-xl max-w-full"
  view_type_classes = if view_type == :list
    "flex flex-col space-y-2"
  else
    "relative grid xs:grid-cols-2 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 2xl:grid-cols-6 gap-6"
  end
  "#{base_classes} #{view_type_classes}"
end

def initialize(field:, resource:)

def initialize(field:, resource:)
  @field = field
  @resource = resource
end

def view_type

def view_type
  (resource.params.dig(:view_type) || field.view_type).to_sym
end

def view_type_component(file)

def view_type_component(file)
  component = "Avo::Fields::Common::Files::ViewType::#{view_type.to_s.capitalize}Component".constantize
  component.new(field: field, resource: resource, file: file)
end

def wrapper_classes

def wrapper_classes
  (field.stacked && !field.hide_view_type_switcher) ? "-mt-9" : ""
end