From 2eddab3476c25d8d88bc1ae6aa8133f44f0d54fb Mon Sep 17 00:00:00 2001 From: Lucas Sousa Date: Sat, 25 Jan 2025 17:47:35 -0300 Subject: [PATCH] Add Skeleton component --- lib/ruby_ui/skeleton/skeleton.rb | 17 +++++++++++++++++ test/ruby_ui/skeleton_test.rb | 15 +++++++++++++++ 2 files changed, 32 insertions(+) create mode 100644 lib/ruby_ui/skeleton/skeleton.rb create mode 100644 test/ruby_ui/skeleton_test.rb diff --git a/lib/ruby_ui/skeleton/skeleton.rb b/lib/ruby_ui/skeleton/skeleton.rb new file mode 100644 index 00000000..62659975 --- /dev/null +++ b/lib/ruby_ui/skeleton/skeleton.rb @@ -0,0 +1,17 @@ +# frozen_string_literal: true + +module RubyUI + class Skeleton < Base + def view_template(&) + div(**attrs, &) + end + + private + + def default_attrs + { + class: "animate-pulse rounded-md bg-primary/10" + } + end + end +end diff --git a/test/ruby_ui/skeleton_test.rb b/test/ruby_ui/skeleton_test.rb new file mode 100644 index 00000000..2b136011 --- /dev/null +++ b/test/ruby_ui/skeleton_test.rb @@ -0,0 +1,15 @@ +# frozen_string_literal: true + +require "test_helper" + +class RubyUI::SkeletonTest < ComponentTest + def test_render + output = phlex do + RubyUI::Skeleton(class: "w-14 h-14") + end + + assert_match(/div/, output) + assert_match(/w-14/, output) + assert_match(/h-14/, output) + end +end