Class: SolidusAdmin::Products::Status::Component

Inherits:
BaseComponent
  • Object
show all
Defined in:
app/components/solidus_admin/products/status/component.rb

Constant Summary collapse

STATUSES =
{
  available: :green,
  discontinued: :yellow,
  deleted: :red,
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(status:) ⇒ Component

Returns a new instance of Component.



23
24
25
# File 'app/components/solidus_admin/products/status/component.rb', line 23

def initialize(status:)
  @status = status
end

Class Method Details

.from_product(product) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
# File 'app/components/solidus_admin/products/status/component.rb', line 10

def self.from_product(product)
  status =
    if product.deleted?
      :deleted
    elsif product.discontinued?
      :discontinued
    else
      :available
    end

  new(status: status)
end

Instance Method Details

#callObject



27
28
29
30
31
32
# File 'app/components/solidus_admin/products/status/component.rb', line 27

def call
  render component('ui/badge').new(
    name: t(".#{@status}"),
    color: STATUSES.fetch(@status)
  )
end