From 52a46b38727885a2258115deb91299070c11f176 Mon Sep 17 00:00:00 2001 From: Lucas Sousa Date: Mon, 19 May 2025 15:22:04 -0300 Subject: [PATCH 1/2] Fix sidebar typo --- .../{collapsiable_sidebar.rb => collapsible_sidebar.rb} | 2 +- lib/ruby_ui/sidebar/non_collapsible_sidebar.rb | 2 +- lib/ruby_ui/sidebar/sidebar.rb | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) rename lib/ruby_ui/sidebar/{collapsiable_sidebar.rb => collapsible_sidebar.rb} (98%) diff --git a/lib/ruby_ui/sidebar/collapsiable_sidebar.rb b/lib/ruby_ui/sidebar/collapsible_sidebar.rb similarity index 98% rename from lib/ruby_ui/sidebar/collapsiable_sidebar.rb rename to lib/ruby_ui/sidebar/collapsible_sidebar.rb index 2dbb90e0..12b71729 100644 --- a/lib/ruby_ui/sidebar/collapsiable_sidebar.rb +++ b/lib/ruby_ui/sidebar/collapsible_sidebar.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module RubyUI - class CollapsiableSidebar < Base + class CollapsibleSidebar < Base def initialize(side: :left, variant: :sidebar, collapsible: :offcanvas, open: true, **attrs) @side = side @variant = variant diff --git a/lib/ruby_ui/sidebar/non_collapsible_sidebar.rb b/lib/ruby_ui/sidebar/non_collapsible_sidebar.rb index 37f85f5b..b68a12be 100644 --- a/lib/ruby_ui/sidebar/non_collapsible_sidebar.rb +++ b/lib/ruby_ui/sidebar/non_collapsible_sidebar.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true module RubyUI - class NonCollpapsibleSidebar < Base + class NonCollapsibleSidebar < Base def view_template(&) div(**attrs, &) end diff --git a/lib/ruby_ui/sidebar/sidebar.rb b/lib/ruby_ui/sidebar/sidebar.rb index eef92c83..be5423e6 100644 --- a/lib/ruby_ui/sidebar/sidebar.rb +++ b/lib/ruby_ui/sidebar/sidebar.rb @@ -20,9 +20,9 @@ def initialize(side: :left, variant: :sidebar, collapsible: :offcanvas, open: tr def view_template(&) if @collapsible == :none - NonCollapsiableSidebar(**attrs, &) + NonCollapsibleSidebar(**attrs, &) else - CollapsiableSidebar(side: @side, variant: @variant, collapsible: @collapsible, open: @open, **attrs, &) + CollapsibleSidebar(side: @side, variant: @variant, collapsible: @collapsible, open: @open, **attrs, &) end end end From 33ee76d71728dcbfa8c6c6bbedd50310472b4bfa Mon Sep 17 00:00:00 2001 From: Lucas Sousa Date: Mon, 19 May 2025 15:33:01 -0300 Subject: [PATCH 2/2] Add a test case for the non collapsible variant --- test/ruby_ui/sidebar_test.rb | 60 ++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/test/ruby_ui/sidebar_test.rb b/test/ruby_ui/sidebar_test.rb index 08a1c87b..93aa81e1 100644 --- a/test/ruby_ui/sidebar_test.rb +++ b/test/ruby_ui/sidebar_test.rb @@ -63,6 +63,66 @@ def test_render_with_all_items assert_match(/Footer/, output) end + def test_render_non_collapsible_sidebar + output = phlex do + RubyUI.SidebarWrapper do + RubyUI.Sidebar(collapsible: :none) do + RubyUI.SidebarHeader do + RubyUI.SidebarGroup do + RubyUI.SidebarGroupContent do + RubyUI.SidebarInput(id: "search", placeholder: "Search the docs") + end + end + end + RubyUI.SidebarContent do + RubyUI.SidebarGroup do + RubyUI.SidebarGroupLabel { "Application" } + RubyUI.SidebarGroupAction { "Group Action" } + RubyUI.SidebarGroupContent do + RubyUI.SidebarMenu do + RubyUI.SidebarMenuItem do + RubyUI.SidebarMenuSub do + RubyUI.SidebarMenuSubItem do + RubyUI.SidebarMenuSubButton(as: :a, href: "#") { "Sub Item 1" } + end + end + end + RubyUI.SidebarMenuItem do + RubyUI.SidebarMenuButton(as: :a, href: "#") { "Settings" } + RubyUI.SidebarMenuAction { "Settings" } + end + RubyUI.SidebarMenuItem do + RubyUI.SidebarMenuButton { "Dashboard" } + RubyUI.SidebarMenuAction { "Dashboard" } + RubyUI.SidebarMenuBadge { "Dashboard Badge" } + end + RubyUI.SidebarMenuItem do + RubyUI.SidebarMenuSkeleton() + end + end + end + end + RubyUI.SidebarSeparator() + end + RubyUI.SidebarFooter { "Footer" } + RubyUI.SidebarRail() + end + RubyUI.SidebarInset do + RubyUI.SidebarTrigger() + end + end + end + + assert_match(/Search the docs/, output) + assert_match(/Application/, output) + assert_match(/Group Action/, output) + assert_match(/Sub Item 1/, output) + assert_match(/Settings/, output) + assert_match(/Dashboard/, output) + assert_match(/Dashboard Badge/, output) + assert_match(/Footer/, output) + end + def test_with_side_right output = phlex do RubyUI.Sidebar(side: :right)