Sha256: 092b885aa9c31691dc4e35d46c6084453c15de49bd40872353a58f9e779713a4
Contents?: true
Size: 1.08 KB
Versions: 11
Compression:
Stored size: 1.08 KB
Contents
module Coco class ButtonTo < Coco::Component include Concerns::WrapsComponent include Concerns::AcceptsOptions accepts_option :fit, from: [:auto, :full] wraps_component :button do |args| Coco::Button.new( type: :submit, fit: get_option_value(:fit) || :auto, **args ) end %i[confirmation].each do |slot_name| renders_one slot_name, ->(**kwargs, &block) do button.send(:"with_#{slot_name}", **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
Version data entries
11 entries across 11 versions & 1 rubygems