Class: Lookbook::BaseComponent
- Inherits:
-
ViewComponent::Base
- Object
- ViewComponent::Base
- Lookbook::BaseComponent
- Includes:
- ComponentHelper
- Defined in:
- app/components/lookbook/base_component.rb
Direct Known Subclasses
Button::Component, ButtonGroup::Component, Code::Component, CopyButton::Component, DebugMenu::Component, DimensionsDisplay::Component, Editor::Component, Embed::Component, Field::Component, Filter::Component, Header::Component, Icon::Component, InspectorPanel::Component, Nav::Component, Nav::Item::Component, PageTabs::Component, Prose::Component, SplitLayout::Component, TabPanels::Component, TabPanels::Panel::Component, Tabs::Component, Tabs::DropdownTab::Component, Tabs::Tab::Component, Toolbar::Component, Viewport::Component
Constant Summary
Constants included from ComponentHelper
ComponentHelper::COMPONENT_CLASSES
Instance Method Summary collapse
- #component_name ⇒ Object
-
#initialize(alpine_data: [], **html_attrs) ⇒ BaseComponent
constructor
A new instance of BaseComponent.
- #render_component_tag(tag = :div, **attrs, &block) ⇒ Object
Methods included from ComponentHelper
#build_tag_values, #class_names, #code, #icon, #lookbook_render, #lookbook_tag
Constructor Details
#initialize(alpine_data: [], **html_attrs) ⇒ BaseComponent
Returns a new instance of BaseComponent.
5 6 7 8 9 |
# File 'app/components/lookbook/base_component.rb', line 5 def initialize(alpine_data: [], **html_attrs) @alpine_data ||= alpine_data @html_attrs = html_attrs @html_attrs[:class] = {"#{@html_attrs[:class]}": true} if @html_attrs[:class].is_a? String end |
Instance Method Details
#component_name ⇒ Object
21 22 23 |
# File 'app/components/lookbook/base_component.rb', line 21 def component_name self.class.name.chomp("::Component").delete_prefix("Lookbook::").underscore.tr("/", "_").tr("_", "-") end |
#render_component_tag(tag = :div, **attrs, &block) ⇒ Object
11 12 13 14 15 16 17 18 19 |
# File 'app/components/lookbook/base_component.rb', line 11 def render_component_tag(tag = :div, **attrs, &block) merged_classes = class_names(attrs[:class], @html_attrs[:class]) merged_attrs = @html_attrs.except(:class).deep_merge(attrs.except(:class)) lookbook_tag tag, name: component_name, **merged_attrs, "x-data": prepare_alpine_data(merged_attrs[:"x-data"]), class: merged_classes, &block end |