Class: Solrengine::Ui::TokenIconComponent

Inherits:
ViewComponent::Base
  • Object
show all
Defined in:
app/components/solrengine/ui/token_icon_component.rb

Constant Summary collapse

SIZES =
{
  sm: "h-6 w-6",
  md: "h-8 w-8",
  lg: "h-10 w-10"
}.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(symbol:, uri: nil, size: :md) ⇒ TokenIconComponent

Returns a new instance of TokenIconComponent.



14
15
16
17
18
# File 'app/components/solrengine/ui/token_icon_component.rb', line 14

def initialize(symbol:, uri: nil, size: :md)
  @uri = uri
  @symbol = symbol
  @size = size
end

Instance Attribute Details

#sizeObject (readonly)

Returns the value of attribute size.



12
13
14
# File 'app/components/solrengine/ui/token_icon_component.rb', line 12

def size
  @size
end

#symbolObject (readonly)

Returns the value of attribute symbol.



12
13
14
# File 'app/components/solrengine/ui/token_icon_component.rb', line 12

def symbol
  @symbol
end

#uriObject (readonly)

Returns the value of attribute uri.



12
13
14
# File 'app/components/solrengine/ui/token_icon_component.rb', line 12

def uri
  @uri
end

Instance Method Details

#fallback_letterObject



29
30
31
# File 'app/components/solrengine/ui/token_icon_component.rb', line 29

def fallback_letter
  symbol&.first&.upcase || "?"
end

#size_classObject



20
21
22
# File 'app/components/solrengine/ui/token_icon_component.rb', line 20

def size_class
  SIZES.fetch(size, SIZES[:md])
end

#size_styleObject



24
25
26
27
# File 'app/components/solrengine/ui/token_icon_component.rb', line 24

def size_style
  pixels = { sm: 24, md: 32, lg: 40 }.fetch(size, 32)
  "width: #{pixels}px; height: #{pixels}px;"
end