class ViewComponent::Storybook::Controls::CustomConfig

Attributes

value_method_args[R]

Public Instance Methods

param(new_param = nil) click to toggle source
# File lib/view_component/storybook/controls/custom_config.rb, line 17
def param(new_param = nil)
  value_method_args.with_param_prefix(new_param) unless new_param.nil?
  super(new_param)
end
to_csf_params() click to toggle source
# File lib/view_component/storybook/controls/custom_config.rb, line 22
def to_csf_params
  validate!
  # TODO: Figure out if we can use 'category' with the args table
  # export default {
  #   argTypes: {
  #     foo: {
  #       table: { category: 'cat', subcategory: 'sub' }
  #     }
  #   }
  # }
  value_method_args.controls.reduce({}) do |csf_params, control|
    csf_params.deep_merge(control.to_csf_params)
  end
end
value_from_params(params) click to toggle source
# File lib/view_component/storybook/controls/custom_config.rb, line 37
def value_from_params(params)
  value_method_args.call(params)
end
with_value(*args, **kwargs, &block) click to toggle source
# File lib/view_component/storybook/controls/custom_config.rb, line 11
def with_value(*args, **kwargs, &block)
  @value_method_args = MethodArgs::ControlMethodArgs.new(block, *args, **kwargs)
  @value_method_args.with_param_prefix(param)
  self
end

Private Instance Methods

validate_value_method_args() click to toggle source
# File lib/view_component/storybook/controls/custom_config.rb, line 43
def validate_value_method_args
  return if value_method_args.valid?

  value_method_args_errors = value_method_args.errors.full_messages.join(', ')
  errors.add(:value_method_args, :invalid, errors: value_method_args_errors)
end