Class: SearchResults::Migrations

Inherits:
Components::Base
  • Object
show all
Includes:
Phlex::Rails::Helpers::LinkTo, Phlex::Rails::Helpers::TurboFrameTag
Defined in:
app/components/databasium/search_results/migrations.rb

Instance Method Summary collapse

Constructor Details

#initialize(migrations:, pending_migrations:, pagy:) ⇒ Migrations

Returns a new instance of Migrations.



9
10
11
12
13
# File 'app/components/databasium/search_results/migrations.rb', line 9

def initialize(migrations:, pending_migrations:, pagy:)
  @migrations = migrations
  @pending_migrations = pending_migrations
  @pagy = pagy
end

Instance Method Details

#view_templateObject



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/components/databasium/search_results/migrations.rb', line 15

def view_template
  turbo_frame_tag("results") do
    @migrations.each do |m|
      status = @pending_migrations.include?(m.version) ? "pending" : "applied"
      link_to(
        databasium.migration_path(m.version),
        data: {
          turbo_stream: true
        },
        class:
          "text-main-text hover:text-hover hover:cursor-pointer flex items-center gap-2 p-1 border-b
            border-border flex items-center justify-between"
      ) do
        p(class: "max-w-fit overflow-x-auto me-2 scrollbar-thin p-1") { "#{m.name}" }
        render Migrations::MigrationStatus.new(status: status, version: m.version)
      end
    end
    div(class: "mt-4 flex justify-start") { raw @pagy.series_nav.html_safe } if @pagy
  end
end