Sha256: e4169e30e68c7fbc5779224f6a660e7109d5e80920dbc4e4d7e9652137ab3300

Contents?: true

Size: 1015 Bytes

Versions: 7

Compression:

Stored size: 1015 Bytes

Contents

module PageflowScrolled
  # Widget type that shall be rendered by a React component. Add a
  # Webpacker pack named `pageflow-scrolled/widgets/<name>.js` which
  # calls `frontend.widgetTypes.register`to pass the React
  # component. Add a pack named
  # `pageflow-scrolled/widgets/<name>Theme.css` to define cutom
  # styles.
  #
  # @since 15.7
  class ReactWidgetType < Pageflow::WidgetType
    def initialize(role:, name:, enabled_in_editor: true)
      @role = role
      @name = name
      @enabled_in_editor = enabled_in_editor
    end

    attr_reader :name

    def insert_point
      :react
    end

    def roles
      [@role]
    end

    def enabled_in_editor?
      @enabled_in_editor
    end

    def render(*)
      ''
    end

    # @api private
    def pack
      "pageflow-scrolled/widgets/#{name}"
    end

    # @api private
    def self.all_for(entry)
      Pageflow.config_for(entry).widget_types.select do |widget_type|
        widget_type.insert_point == :react
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
pageflow-17.0.4 entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb
pageflow-17.0.3 entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb
pageflow-17.0.2 entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb
pageflow-17.0.1 entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb
pageflow-17.0.0 entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb
pageflow-16.2.0 entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb
pageflow-16.1.0 entry_types/scrolled/lib/pageflow_scrolled/react_widget_type.rb