app/components/avo/sidebar/base_item_component.rb



# frozen_string_literal: true

class Avo::Sidebar::BaseItemComponent < ViewComponent::Base
  attr_reader :item

  def initialize(item: nil)
    @item = item
  end

  def items
    item.items
  end

  def key
    result = "avo.#{request.host}.main_menu.#{item.name.to_s.underscore}"

    if item.icon.present?
      result += ".#{item.icon.parameterize.underscore}"
    end

    result
  end

  def collapsable
    item.collapsable
  end

  def collapsed
    item.collapsed
  end

  def section_collapse_data_animation
    {
      transition_enter: "transition ease-out duration-100",
      transition_enter_start: "transform opacity-0 -translate-y-4",
      transition_enter_end: "transform opacity-100 translate-y-0",
      transition_leave: "transition ease-in duration-75",
      transition_leave_start: "transform opacity-100 translate-y-0",
      transition_leave_end: "transform opacity-0 -translate-y-4",
    }
  end
end