module Playbook::PbKitHelper

def build_view_model(kit, props, &block)

def build_view_model(kit, props, &block)
  folder = is_subkit?(kit) ? kit.split("/")[0] : kit
  item = is_subkit?(kit) ? kit.split("/")[-1] : kit
  class_name = "Playbook::Pb#{folder.camelize}::#{item.camelize}"
  class_name.safe_constantize.new(props, &block)
end

def is_subkit?(kit)

def is_subkit?(kit)
  kit.match(%r{[/\\]})
end

def pb_rails(kit, props: {}, &block)

def pb_rails(kit, props: {}, &block)
  previous = prefix_partial_path_with_controller_namespace
  self.prefix_partial_path_with_controller_namespace = false
  kit = build_view_model(kit.to_s, props, &block)
  render(partial: kit, as: :object)
ensure
  self.prefix_partial_path_with_controller_namespace = previous
end

def pb_react(kit, props: {}, options: {})

def pb_react(kit, props: {}, options: {})
  ::Webpacker::React::Component.new(kit.camelize).render(props, options)
end