Class: Ariadne::ConditionalWrapper

Inherits:
BaseComponent
  • Object
show all
Defined in:
app/components/ariadne/conditional_wrapper.rb

Overview

Conditionally renders a ‘Ariadne::BaseComponent` around the given content. If the given condition is true, a `Ariadne::BaseComponent` will render around the content. If the condition is false, only the content is rendered.

Constant Summary

Constants inherited from BaseComponent

BaseComponent::ACCEPT_ANYTHING

Constants included from ViewHelper

ViewHelper::HELPERS

Constants included from AttributesHelper

AttributesHelper::PLURAL_ARIA_ATTRIBUTES, AttributesHelper::PLURAL_DATA_ATTRIBUTES

Instance Method Summary collapse

Methods inherited from BaseComponent

#class_for, #component, component_id, #component_id, component_name, #html_attributes, i18n_scope, #in_turbo_frame, #in_turbo_stream, #options, stimulus_name, #styles, translate, #validate_aria_label!

Methods included from ViewHelper

generate_id

Methods included from AttributesHelper

#aria, #data, #merge_aria, #merge_data, #merge_prefixed_attribute_hashes, #prepend_action, #prepend_controller, #prepend_data_attribute

Methods included from ViewComponent::StyleVariants

#merged_styles

Constructor Details

#initialize(condition:, **base_component_arguments) ⇒ ConditionalWrapper

Returns a new instance of ConditionalWrapper.

Parameters:

  • condition (Boolean)

    Whether or not to wrap the content in a ‘Ariadne::BaseComponent`.

  • base_component_arguments (Hash)

    The arguments to pass to ‘Ariadne::BaseComponent`.



10
11
12
13
# File 'app/components/ariadne/conditional_wrapper.rb', line 10

def initialize(condition:, **base_component_arguments)
  @condition = condition
  @base_component_arguments = base_component_arguments
end

Instance Method Details

#callObject



15
16
17
18
19
# File 'app/components/ariadne/conditional_wrapper.rb', line 15

def call
  return content unless @condition

  BaseComponent.new(**@base_component_arguments).render_in(self) { content }
end