Module: MaquinaComponents::EmptyHelper
- Defined in:
- app/helpers/maquina_components/empty_helper.rb
Overview
Empty Helper
Provides convenient methods for creating empty state components.
Instance Method Summary collapse
-
#empty_list_state(resource_name:, new_path: nil, icon: :folder_open, size: :default) ⇒ String
Renders an empty state for lists/tables.
-
#empty_search_state(query: nil, reset_path: nil, size: :default) ⇒ String
Renders an empty state for search results.
-
#empty_state(title:, description: nil, icon: nil, variant: :default, size: :default, css_classes: "", **html_options) { ... } ⇒ String
Renders an empty state component with a simple API.
Instance Method Details
#empty_list_state(resource_name:, new_path: nil, icon: :folder_open, size: :default) ⇒ String
Renders an empty state for lists/tables
89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'app/helpers/maquina_components/empty_helper.rb', line 89 def empty_list_state(resource_name:, new_path: nil, icon: :folder_open, size: :default) empty_state( title: "No #{resource_name} yet", description: "Get started by creating your first #{resource_name.singularize}.", icon: icon, size: size ) do if new_path link_to "Create #{resource_name.singularize.titleize}", new_path, data: {component: "button", variant: "primary"} end end end |
#empty_search_state(query: nil, reset_path: nil, size: :default) ⇒ String
Renders an empty state for search results
63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'app/helpers/maquina_components/empty_helper.rb', line 63 def empty_search_state(query: nil, reset_path: nil, size: :default) description = if query.present? "No results found for \"#{query}\". Try a different search term." else "No results found. Try adjusting your search." end empty_state( title: "No results", description: description, icon: :search, size: size ) do if reset_path link_to "Clear search", reset_path, data: {component: "button", variant: "outline", size: "sm"} end end end |
#empty_state(title:, description: nil, icon: nil, variant: :default, size: :default, css_classes: "", **html_options) { ... } ⇒ String
Renders an empty state component with a simple API
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# File 'app/helpers/maquina_components/empty_helper.rb', line 36 def empty_state(title:, description: nil, icon: nil, variant: :default, size: :default, css_classes: "", **, &block) render "components/empty", variant: variant, size: size, css_classes: css_classes, ** do parts = [] # Build header header_content = [] header_content << render("components/empty/media", icon: icon) if icon header_content << render("components/empty/title", text: title) header_content << render("components/empty/description", text: description) if description parts << render("components/empty/header") { safe_join(header_content) } # Add content/actions if block given if block parts << render("components/empty/content") { capture(&block) } end safe_join(parts) end end |