Class: EasyAdmin::Versions::TimelineComponent

Inherits:
BaseComponent
  • Object
show all
Defined in:
app/components/easy_admin/versions/timeline_component.rb

Instance Method Summary collapse

Methods inherited from BaseComponent

#easy_admin_url_helpers, #helpers, #rails_url_helpers

Methods included from Permissions::Component

#current_user_can?, #current_user_has_role?, #if_can, #if_has_role, #permission_attrs, #permission_button, #permission_case, #permission_classes, #permission_field, #permission_link, #unless_can, #unless_has_role

Methods included from FieldsHelper

#field_component, #render_field

Methods included from DashboardsHelper

#delta_badge_classes, #metric_value_classes, #render_card, #sparkline_color, #sparkline_points, #trend_direction, #trend_icon, #trend_indicator_classes

Constructor Details

#initialize(versions:, turbo_frame_id: nil, resource_class: nil, record: nil) ⇒ TimelineComponent



4
5
6
7
8
9
# File 'app/components/easy_admin/versions/timeline_component.rb', line 4

def initialize(versions:, turbo_frame_id: nil, resource_class: nil, record: nil)
  @versions = versions
  @turbo_frame_id = turbo_frame_id
  @resource_class = resource_class
  @record = record
end

Instance Method Details

#view_templateObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/components/easy_admin/versions/timeline_component.rb', line 11

def view_template
  content = lambda do
    div(class: "w-full") do
      # Timeline container
      div(class: "space-y-0") do
        # Version items with connected timeline
        @versions.each_with_index do |version, index|
          render_timeline_item_content(version, index)
        end
      end
    end
  end

  if @turbo_frame_id
    turbo_frame(id: @turbo_frame_id) do
      content.call
    end
  else
    content.call
  end
end