Sha256: 3b09099e34ea5069d77ad2bcd25b4c7b23cf4cddce7d5476a4c001c1e9d854ee
Contents?: true
Size: 1.16 KB
Versions: 25
Compression:
Stored size: 1.16 KB
Contents
class ContactForm include Glimmer::Web::Component option :presenter markup { form { div { label('Name: ', for: 'name-field') @name_input = input(type: 'text', id: 'name-field', required: true, autofocus: true) { value <=> [presenter.new_contact, :name] } } div { label('Email: ', for: 'email-field') @email_input = input(type: 'email', id: 'email-field', required: true) { value <=> [presenter.new_contact, :email] } } div { input(type: 'submit', value: 'Add Contact') { onclick do |event| if [@name_input, @email_input].all?(&:check_validity) event.prevent_default # adding contact model to presenter contacts array indirectly updates contacts table presenter.add_contact @name_input.focus end end } } style { # CSS can be included as Glimmer DSL for CSS syntax (Ruby code) r('input') { margin '5px' } r('input[type=submit]') { margin '5px 0' } } } } end
Version data entries
25 entries across 25 versions & 1 rubygems