# frozen_string_literal: true # # Renders a
for use with React components, with data attributes specifying the component path # and props. # # If a content block is given, that content will be rendered inside the component, allowing for a # "loading" UI. If no block is given, then a "loading..." text will be rendered. It is intended that # the component is mounted to this div, and the loading UI will then be replaced with the # component's rendered output. # class Proscenium::ViewComponent::ReactComponent < Proscenium::ViewComponent self.abstract_class = true include Proscenium::Componentable def call tag.send root_tag, data: data_attributes do tag.div content || 'loading...' end end end