form_props 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cff106aa823f714feedeca5bcb60009c1e699fd3e5caf04213aff7b5453bebf1
4
- data.tar.gz: dec35c8f4b7eaf8233b1dc5ba018b08d2d71275a9e5251e82c18c68190e8b10f
3
+ metadata.gz: 6afc4d5cd3b6527eda75e36d715a828d50fb91f7cd35015840cfda0fd3bd1757
4
+ data.tar.gz: 112580b30cc0ee20c4bb7903bf2b710c07452e9584753306badd4b091965f367
5
5
  SHA512:
6
- metadata.gz: 3bfdfa243ba6534c73b837472bd1e9718b19ca0c99ecc7cc177389a6d4474c4042a634f5ac2a0f68e32484b6895e024b433266d7c670cda6199dfa0a82929154
7
- data.tar.gz: 5afc0d65c6d09a6bbfde9c31dc9fc489499cfa69f489cd45626ebf4342da1bd1e8524ec4fab46af87d6778cef9fd445a2b45585d7462143298a113fc13efcb94
6
+ metadata.gz: f96bd0cf7459cf432c86d4e0b660a061b0787d294ce154ed18af9c6a44feebc5ee8451525bc9e9304823c1b16ff41be0a10423e0e30e47435b5b94e3eae6e1de
7
+ data.tar.gz: f15f59d1ce001e8f4208d1e9081feb01967964cd6e8b2be7633ac97166ef17aaf8a4df2b2a0333b113ba7438858a2ffa0913d7bc5cfaa5dfc9a83906718f38b2
data/README.md CHANGED
@@ -1,10 +1,9 @@
1
1
  # Form Props
2
2
 
3
- ![Build Status](https://github.com/github/docs/actions/workflows/build.yml/badge.svg?branch=main)
3
+ ![Build Status](https://github.com/thoughtbot/form_props/actions/workflows/build.yml/badge.svg?branch=main)
4
4
 
5
- FormProps is a Rails form builder that outputs HTML attributes instead of tags.
6
- Now you can enjoy the conviences of Rails helpers in other view libraries like
7
- React, and React Native.
5
+ FormProps is a Rails form builder that outputs HTML props instead of tags. Now
6
+ you can enjoy the power and convenience of Rails helpers in React!
8
7
 
9
8
  By separting attributes from tags, FormProps can offer greater flexbility than normal
10
9
  Rails form builders; allowing designers to stay longer in HTML land and more easily
@@ -26,7 +25,7 @@ gem "form_props"
26
25
  and `bundle install`
27
26
 
28
27
  ## Usage
29
- `form_props` is designed to be used in a [PropsTemplate] template (it can work with
28
+ `form_props` is designed to be used in a [PropsTemplate] template (it can work with
30
29
  [jbuilder](#jbuilder)). For example in your `new.json.props`:
31
30
 
32
31
  ```ruby
@@ -46,7 +45,7 @@ would output
46
45
  props: {
47
46
  id: "create-post",
48
47
  action: "/posts/123",
49
- accept-charset: "UTF-8",
48
+ acceptCharset: "UTF-8",
50
49
  method: "post"
51
50
  },
52
51
  extras: {
@@ -54,19 +53,19 @@ would output
54
53
  name: "_method",
55
54
  type: "hidden",
56
55
  defaultValue: "patch",
57
- autocomplete: "off"
56
+ autoComplete: "off"
58
57
  },
59
58
  utf8: {
60
59
  name: "utf8",
61
60
  type: "hidden",
62
61
  defaultValue: "\u0026#x2713;",
63
- autocomplete: "off"
62
+ autoComplete: "off"
64
63
  }
65
64
  csrf: {
66
65
  name: "utf8",
67
66
  type: "authenticity_token",
68
67
  defaultValue: "SomeTOken!23$",
69
- autocomplete: "off"
68
+ autoComplete: "off"
70
69
  }
71
70
  },
72
71
  inputs: {
@@ -84,12 +83,11 @@ import React from 'react'
84
83
 
85
84
  export default ({props, inputs, extras}) => {
86
85
  <form {...props}>
87
- {Object.values(extras).map((hiddenProps) => (<input {...hiddenProps} type="hidden"/>))}
86
+ {Object.values(extras).map((hiddenProps) => (<input {...hiddenProps} key={hiddenProps.name}/>))}
88
87
 
89
- <input {...inputs.title} type="text"/>
88
+ <input {...inputs.title} />
90
89
  <label for={inputs.title.id}>Your Name</label>
91
-
92
- <input {...inputs.submit} type="submit"/>
90
+ <button {...inputs.submit}>{inputs.submit.text}</button>
93
91
  </form>
94
92
  }
95
93
  ```
@@ -649,7 +647,7 @@ available.
649
647
 
650
648
  ## jbuilder
651
649
 
652
- form_props can work with jbuilder, but needs an extra call in the beginning of
650
+ form_props can work with jbuilder, but needs an extra call in the beginning of
653
651
  your template to `FormProps.set` to inject `json`. For example.
654
652
 
655
653
  ```ruby
@@ -40,6 +40,7 @@ module FormProps
40
40
  end
41
41
 
42
42
  html_options = html_options_for_form_with(url, model, **options)
43
+ html_options["acceptCharset"] ||= html_options.delete("accept-charset")
43
44
 
44
45
  json.extras do
45
46
  extra_props_for_form(json, html_options)
@@ -62,7 +63,7 @@ module FormProps
62
63
  json.name request_forgery_protection_token.to_s
63
64
  json.type "hidden"
64
65
  json.default_value token
65
- json.autocomplete "off"
66
+ json.auto_complete "off"
66
67
  end
67
68
  end
68
69
  end
@@ -72,7 +73,7 @@ module FormProps
72
73
  json.name "_method"
73
74
  json.type "hidden"
74
75
  json.default_value method.to_s
75
- json.autocomplete "off"
76
+ json.auto_complete "off"
76
77
  end
77
78
  end
78
79
 
@@ -81,7 +82,7 @@ module FormProps
81
82
  json.name "utf8"
82
83
  json.type "hidden"
83
84
  json.default_value "&#x2713;"
84
- json.autocomplete "off"
85
+ json.auto_complete "off"
85
86
  end
86
87
  end
87
88
 
@@ -132,7 +132,7 @@ module FormProps
132
132
  def submit(value = nil, options = {})
133
133
  value, options = nil, value if value.is_a?(Hash)
134
134
  value ||= submit_default_value
135
- options = {name: "commit", value: value}.update(options)
135
+ options = {name: "commit", text: value}.update(options)
136
136
 
137
137
  Inputs::Submit.new(@template, options).render
138
138
  end
@@ -4,7 +4,7 @@ module FormProps
4
4
  module Inputs
5
5
  class HiddenField < TextField
6
6
  def render
7
- @options[:autocomplete] = "off"
7
+ @options[:auto_complete] = "off"
8
8
  super
9
9
  end
10
10
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module FormProps
4
- VERSION = "0.0.2"
4
+ VERSION = "0.0.3"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: form_props
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Johny Ho
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-07-13 00:00:00.000000000 Z
11
+ date: 2023-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport