Class: SolidusAdmin::Orders::Show::Address::Component

Inherits:
BaseComponent
  • Object
show all
Includes:
Layout::PageHelpers
Defined in:
app/components/solidus_admin/orders/show/address/component.rb

Constant Summary collapse

VALID_TYPES =
['ship', 'bill'].freeze

Instance Method Summary collapse

Constructor Details

#initialize(order:, address:, user: nil, type: 'ship') ⇒ Component

Returns a new instance of Component.



8
9
10
11
12
13
14
# File 'app/components/solidus_admin/orders/show/address/component.rb', line 8

def initialize(order:, address:, user: nil, type: 'ship')
  @order = order
  @user = user
  @address = address
  @addresses = user&.addresses.to_a.reject(&:new_record?)
  @type = validate_address_type(type)
end

Instance Method Details

#address_frame_idObject



20
21
22
# File 'app/components/solidus_admin/orders/show/address/component.rb', line 20

def address_frame_id
  @table_frame_id ||= "#{stimulus_id}--#{@type}-address-frame-#{@order.id}"
end

#form_idObject



16
17
18
# File 'app/components/solidus_admin/orders/show/address/component.rb', line 16

def form_id
  @form_id ||= "#{stimulus_id}--form-#{@type}-#{@order.id}"
end

#format_address(address) ⇒ Object



33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'app/components/solidus_admin/orders/show/address/component.rb', line 33

def format_address(address)
  safe_join([
    address.name,
    tag.br,
    address.address1,
    tag.br,
    address.address2,
    address.city,
    address.zipcode,
    address.state&.name,
    tag.br,
    address.country.name,
    tag.br,
    address.phone,
  ], " ")
end

#use_attributeObject



24
25
26
27
28
29
30
31
# File 'app/components/solidus_admin/orders/show/address/component.rb', line 24

def use_attribute
  case @type
  when 'ship'
    'use_shipping'
  when 'bill'
    'use_billing'
  end
end

#validate_address_type(type) ⇒ Object



50
51
52
# File 'app/components/solidus_admin/orders/show/address/component.rb', line 50

def validate_address_type(type)
  VALID_TYPES.include?(type) ? type : raise(ArgumentError, "Invalid address type: #{type}")
end