Sha256: 4f38e2c110a8a988a08ac76c6e897c0f08b2b3420cfe5f9af987d29e20d4e126
Contents?: true
Size: 1.13 KB
Versions: 7
Compression:
Stored size: 1.13 KB
Contents
module Coco module App module Elements class ButtonTo < Coco::Component include Concerns::WrapsComponent wraps_component :button do |args| Coco::App::Elements::Button.new(type: :submit, **args) end %i[confirmation].each do |slot_name| renders_one slot_name, ->(**kwargs, &block) do button.send("with_#{slot_name}".to_sym, **kwargs, &block) end end attr_reader :method, :turbo def initialize(form: nil, params: nil, method: :post, action: nil, href: nil, turbo: false, **kwargs) @form_args = form.to_h @action = action || href @method = method @params = params.to_h @turbo = turbo end def params to_form_params(@params) end def form_args { url: action, method: method, data: { turbo: ("false" if !turbo) } }.deep_merge(@form_args) end def action @action.is_a?(String) ? @action : helpers.url_for(@action) end end end end end
Version data entries
7 entries across 7 versions & 1 rubygems