Class: Shadcn::DrawerComponent

Inherits:
BaseComponent
  • Object
show all
Defined in:
app/components/shadcn/drawer_component.rb

Overview

Drawer component for mobile-optimized modal panels Matches shadcn/ui Drawer component (built on Vaul)

Examples:

Basic drawer

<%= render Shadcn::DrawerComponent.new do |drawer| %>
  <% drawer.with_trigger do %>
    <%= render Shadcn::ButtonComponent.new { "Open Drawer" } %>
  <% end %>
  <% drawer.with_body do |body| %>
    <% body.with_header do |header| %>
      <% header.with_title { "Edit Profile" } %>
      <% header.with_description { "Make changes to your profile." } %>
    <% end %>
    <div class="p-4">Content here</div>
    <% body.with_footer do %>
      <%= render Shadcn::ButtonComponent.new { "Save" } %>
    <% end %>
  <% end %>
<% end %>

Instance Attribute Summary

Attributes inherited from BaseComponent

#class_name, #data, #html_options

Instance Method Summary collapse

Methods inherited from BaseComponent

#content

Methods included from Rails::Helpers::ClassNameHelper

#cn

Constructor Details

#initialize(open: false, direction: :bottom, **options) ⇒ DrawerComponent

Returns a new instance of DrawerComponent.

Parameters:

  • open (Boolean) (defaults to: false)

    Whether drawer starts open

  • direction (Symbol) (defaults to: :bottom)

    :bottom, :top, :left, or :right



32
33
34
35
36
# File 'app/components/shadcn/drawer_component.rb', line 32

def initialize(open: false, direction: :bottom, **options)
  super(**options)
  @open = open
  @direction = direction
end