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 +4 -4
- data/README.md +12 -14
- data/lib/form_props/action_view_extensions/form_helper.rb +4 -3
- data/lib/form_props/form_builder.rb +1 -1
- data/lib/form_props/inputs/hidden_field.rb +1 -1
- data/lib/form_props/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6afc4d5cd3b6527eda75e36d715a828d50fb91f7cd35015840cfda0fd3bd1757
|
4
|
+
data.tar.gz: 112580b30cc0ee20c4bb7903bf2b710c07452e9584753306badd4b091965f367
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f96bd0cf7459cf432c86d4e0b660a061b0787d294ce154ed18af9c6a44feebc5ee8451525bc9e9304823c1b16ff41be0a10423e0e30e47435b5b94e3eae6e1de
|
7
|
+
data.tar.gz: f15f59d1ce001e8f4208d1e9081feb01967964cd6e8b2be7633ac97166ef17aaf8a4df2b2a0333b113ba7438858a2ffa0913d7bc5cfaa5dfc9a83906718f38b2
|
data/README.md
CHANGED
@@ -1,10 +1,9 @@
|
|
1
1
|
# Form Props
|
2
2
|
|
3
|
-

|
4
4
|
|
5
|
-
FormProps is a Rails form builder that outputs HTML
|
6
|
-
|
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
|
-
|
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
|
-
|
56
|
+
autoComplete: "off"
|
58
57
|
},
|
59
58
|
utf8: {
|
60
59
|
name: "utf8",
|
61
60
|
type: "hidden",
|
62
61
|
defaultValue: "\u0026#x2713;",
|
63
|
-
|
62
|
+
autoComplete: "off"
|
64
63
|
}
|
65
64
|
csrf: {
|
66
65
|
name: "utf8",
|
67
66
|
type: "authenticity_token",
|
68
67
|
defaultValue: "SomeTOken!23$",
|
69
|
-
|
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}
|
86
|
+
{Object.values(extras).map((hiddenProps) => (<input {...hiddenProps} key={hiddenProps.name}/>))}
|
88
87
|
|
89
|
-
<input {...inputs.title}
|
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.
|
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.
|
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 "✓"
|
84
|
-
json.
|
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",
|
135
|
+
options = {name: "commit", text: value}.update(options)
|
136
136
|
|
137
137
|
Inputs::Submit.new(@template, options).render
|
138
138
|
end
|
data/lib/form_props/version.rb
CHANGED
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.
|
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-
|
11
|
+
date: 2023-07-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|