Module: BetterUi::General::Components::Input::Toggle::ToggleHelper

Included in:
ApplicationHelper
Defined in:
app/helpers/better_ui/general/components/input/toggle/toggle_helper.rb

Instance Method Summary collapse

Instance Method Details

#bui_input_toggle(name:, value: '1', checked: false, required: false, disabled: false, label: nil, label_position: :right, theme: :default, size: :medium, form: nil, classes: '', **options) ⇒ String

Renderizza un componente Toggle/Switch moderno per sostituire i checkbox tradizionali.

Examples:

Uso base

<%= bui_input_toggle(name: 'notifications') %>

Con label e stato iniziale

<%= bui_input_toggle(name: 'dark_mode', label: 'Modalità scura', checked: true) %>

Con tema e dimensioni

<%= bui_input_toggle(name: 'premium', label: 'Account Premium', theme: :green, size: :large) %>

Con posizione label e stato disabilitato

<%= bui_input_toggle(name: 'maintenance', label: 'Modalità manutenzione', label_position: :left, disabled: true) %>

Con Rails form builder

<%= form_with model: @user do |form| %>
  <%= bui_input_toggle(name: :email_notifications, form: form, label: 'Notifiche email', theme: :blue) %>
  <%= bui_input_toggle(name: :sms_notifications, form: form, label: 'Notifiche SMS', theme: :green) %>
<% end %>

Con attributi HTML personalizzati

<%= bui_input_toggle(
      name: 'api_access', 
      label: 'Accesso API',
      theme: :violet,
      size: :small,
      required: true,
      data: { action: 'toggle-api-access' },
      'aria-describedby': 'api-help-text'
    ) %>

Parameters:

  • name (String)

    Nome del campo toggle (obbligatorio)

  • value (String) (defaults to: '1')

    Valore del toggle quando è attivo (default: “1”)

  • checked (Boolean) (defaults to: false)

    Se il toggle è attivo

  • required (Boolean) (defaults to: false)

    Se il campo è obbligatorio

  • disabled (Boolean) (defaults to: false)

    Se il campo è disabilitato

  • label (String, nil) (defaults to: nil)

    Testo della label associata al toggle

  • label_position (Symbol) (defaults to: :right)

    Posizione della label (:left, :right)

  • theme (Symbol) (defaults to: :default)

    Tema del componente (:default, :white, :red, :rose, :orange, :green, :blue, :yellow, :violet)

  • size (Symbol) (defaults to: :medium)

    Dimensione del componente (:small, :medium, :large)

  • form (ActionView::Helpers::FormBuilder, nil) (defaults to: nil)

    Form builder Rails opzionale

  • classes (String) (defaults to: '')

    Classi CSS aggiuntive

  • options (Hash)

    Opzioni aggiuntive per attributi HTML

Returns:

  • (String)

    HTML del componente Toggle renderizzato



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'app/helpers/better_ui/general/components/input/toggle/toggle_helper.rb', line 54

def bui_input_toggle(name:, value: '1', checked: false, required: false, disabled: false, 
                     label: nil, label_position: :right, theme: :default, size: :medium, 
                     form: nil, classes: '', **options)
  render BetterUi::General::Input::Toggle::Component.new(
    name: name,
    value: value,
    checked: checked,
    required: required,
    disabled: disabled,
    label: label,
    label_position: label_position,
    theme: theme,
    size: size,
    form: form,
    classes: classes,
    **options
  )
end