Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 16 additions & 0 deletions lib/ruby_ui/theme_toggle/set_dark_mode.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# frozen_string_literal: true

module RubyUI
class SetDarkMode < ThemeToggle
def view_template(&)
div(**attrs, &)
end

def default_attrs
{
class: "hidden dark:inline-block",
data: {controller: "ruby-ui--theme-toggle", action: "click->ruby-ui--theme-toggle#setLightTheme"}
}
end
end
end
16 changes: 16 additions & 0 deletions lib/ruby_ui/theme_toggle/set_light_mode.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# frozen_string_literal: true

module RubyUI
class SetLightMode < ThemeToggle
def view_template(&)
div(**attrs, &)
end

def default_attrs
{
class: "dark:hidden",
data: {controller: "ruby-ui--theme-toggle", action: "click->ruby-ui--theme-toggle#setDarkTheme"}
}
end
end
end
32 changes: 0 additions & 32 deletions lib/ruby_ui/theme_toggle/theme_toggle.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,37 +5,5 @@ class ThemeToggle < Base
def view_template(&)
div(**attrs, &)
end

def light_mode(**user_attrs, &)
light_attrs = mix(default_light_attrs, user_attrs)
div(**light_attrs, &)
end

def dark_mode(**user_attrs, &)
dark_attrs = mix(default_dark_attrs, user_attrs)
div(**dark_attrs, &)
end

private

def default_attrs
{
data: {controller: "ruby-ui--theme-toggle"}
}
end

def default_light_attrs
{
class: "dark:hidden",
data: {action: "click->ruby-ui--theme-toggle#setDarkTheme"}
}
end

def default_dark_attrs
{
class: "hidden dark:inline-block",
data: {action: "click->ruby-ui--theme-toggle#setLightTheme"}
}
end
end
end
4 changes: 2 additions & 2 deletions test/ruby_ui/theme_toggle_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ class RubyUI::ThemeToggleTest < ComponentTest
def test_render_with_all_items
output = phlex do
RubyUI.ThemeToggle do |toggle|
toggle.light_mode do
RubyUI.SetLightMode do
RubyUI.Button(variant: :primary) { "Light" }
end

toggle.dark_mode do
RubyUI.SetDarkMode do
RubyUI.Button(variant: :primary) { "Dark" }
end
end
Expand Down