React component helper specs (#24072)
This commit is contained in:
		
							
								
								
									
										23
									
								
								app/helpers/react_component_helper.rb
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								app/helpers/react_component_helper.rb
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
module ReactComponentHelper
 | 
			
		||||
  def react_component(name, props = {}, &block)
 | 
			
		||||
    data = { component: name.to_s.camelcase, props: Oj.dump(props) }
 | 
			
		||||
    if block.nil?
 | 
			
		||||
      div_tag_with_data(data)
 | 
			
		||||
    else
 | 
			
		||||
      content_tag(:div, data: data, &block)
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def react_admin_component(name, props = {})
 | 
			
		||||
    data = { 'admin-component': name.to_s.camelcase, props: Oj.dump({ locale: I18n.locale }.merge(props)) }
 | 
			
		||||
    div_tag_with_data(data)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def div_tag_with_data(data)
 | 
			
		||||
    content_tag(:div, nil, data: data)
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
		Reference in New Issue
	
	Block a user