class Admin::ToggleSwitchComponent < ApplicationComponent attr_reader :action, :record, :pressed, :options alias_method :pressed?, :pressed def initialize(action, record, pressed:, **options) @action = action @record = record @pressed = pressed @options = options end private def text if pressed? t("shared.yes") else t("shared.no") end end def default_options { text: text, method: :patch, remote: true, "aria-pressed": pressed?, form_class: "toggle-switch #{options[:form_class]}".strip } end def html_options default_options.merge(options.except(:form_class)) end end