# frozen_string_literal: true module ViewComponentsHelper def view_component_defaults hash = {} # Avoid calling "guest_user" as it creates a new one if current_user hash[:current_user] = current_user else hash[:guest_user] = guest_user end hash end def view_component(klass, **load_locals) klass.new(**view_component_defaults).tap do |component| component.on_load(**load_locals) if component.respond_to?(:on_load) end end end