Sha256: 88d1e60dde034b05dcb30315b0a6e9349fa548887735517a9bac9c01f56fa346

Contents?: true

Size: 1.46 KB

Versions: 19

Compression:

Stored size: 1.46 KB

Contents

module Lookbook
  class Embed::Inspector::Component < Lookbook::BaseComponent
    attr_reader :target, :context, :scenarios, :panels, :options, :actions

    def initialize(target:, context: nil, options: nil, scenarios: nil, panels: nil, actions: nil, **html_attrs)
      @target = target
      @context = context.to_h
      @options = options.to_h
      @panels = Array(panels)
      @actions = Array(actions).map(&:to_sym)
      @scenarios = Array(scenarios)
      super(**html_attrs)
    end

    def id
      Utils.id(
        "embed-inspector",
        "#{scenarios.map(&:name).join}#{options.to_json}#{actions.to_json}#{panels.to_json}".hash
      )
    end

    def data
      context.fetch(:data, Store.new)
    end

    def params
      context.fetch(:params, {}).to_h
    end

    def dynamic_display_options
      context.fetch(:dynamic_display_options, {}).to_h
    end

    def static_display_options
      context.fetch(:static_display_options, {}).to_h
    end

    def display_action?(name)
      actions.include?(name)
    end

    def scenario_select_options
      scenarios.map { |scenario| [scenario.label, helpers.lookbook_embed_path(scenario.path)] }
    end

    def display_option_controls?
      options.fetch(:display_option_controls, true)
    end

    def drawer?
      panels.any?
    end

    protected

    def alpine_data
      [alpine_encode(id), "$store.pages.embeds"].join(",")
    end

    def alpine_component
      "embedInspectorComponent"
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
lookbook-2.0.5 app/components/lookbook/embed/inspector/component.rb
lookbook-2.0.4 app/components/lookbook/embed/inspector/component.rb
lookbook-2.0.3 app/components/lookbook/embed/inspector/component.rb
lookbook-2.0.2 app/components/lookbook/embed/inspector/component.rb
lookbook-2.0.1 app/components/lookbook/embed/inspector/component.rb
lookbook-2.0.0 app/components/lookbook/embed/inspector/component.rb
lookbook-2.0.0.rc.3 app/components/lookbook/embed/inspector/component.rb
lookbook-2.0.0.rc.2 app/components/lookbook/embed/inspector/component.rb
lookbook-2.0.0.rc.1 app/components/lookbook/embed/inspector/component.rb
lookbook-2.0.0.beta.9 app/components/lookbook/embed/inspector/component.rb
lookbook-2.0.0.beta.8 app/components/lookbook/embed/inspector/component.rb
lookbook-2.0.0.beta.7 app/components/lookbook/embed/inspector/component.rb
lookbook-2.0.0.beta.6 app/components/lookbook/embed/inspector/component.rb
lookbook-2.0.0.beta.5 app/components/lookbook/embed/inspector/component.rb
lookbook-2.0.0.beta.4 app/components/lookbook/embed/inspector/component.rb
lookbook-2.0.0.beta.3 app/components/lookbook/embed/inspector/component.rb
lookbook-2.0.0.beta.2 app/components/lookbook/embed/inspector/component.rb
lookbook-2.0.0.beta.1 app/components/lookbook/embed/inspector/component.rb
lookbook-2.0.0.beta.0 app/components/lookbook/embed/inspector/component.rb