Skip to content

Commit 77416ab

Browse files
committed
Learn now npm packages work
I need to use babel-compiled items as the usable code in NPM.
1 parent d010663 commit 77416ab

15 files changed

+394
-16115
lines changed

dist/react-rails-form-helpers.js

+34-16,087
Large diffs are not rendered by default.

dist/react-rails-form-helpers.min.js

+1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

lib/fields.js

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
exports.WeekField = exports.UrlField = exports.TimeField = exports.TextField = exports.TextArea = exports.TelephoneField = exports.Submit = exports.Select = exports.SearchField = exports.RangeField = exports.Radio = exports.PasswordField = exports.NumberField = exports.MonthField = exports.Label = exports.HiddenField = exports.EmailField = exports.DatetimeLocalField = exports.DatetimeField = exports.DateField = exports.ColorField = exports.Checkbox = undefined;
7+
8+
var _tags = require("./tags");
9+
10+
var Tags = _interopRequireWildcard(_tags);
11+
12+
var _utils = require("./utils");
13+
14+
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
15+
16+
var Checkbox = exports.Checkbox = (0, _utils.nameWithContext)(Tags.CheckboxTag);
17+
var ColorField = exports.ColorField = (0, _utils.nameWithContext)(Tags.ColorFieldTag);
18+
var DateField = exports.DateField = (0, _utils.nameWithContext)(Tags.DateFieldTag);
19+
var DatetimeField = exports.DatetimeField = (0, _utils.nameWithContext)(Tags.DatetimeFieldTag);
20+
var DatetimeLocalField = exports.DatetimeLocalField = (0, _utils.nameWithContext)(Tags.DatetimeLocalFieldTag);
21+
var EmailField = exports.EmailField = (0, _utils.nameWithContext)(Tags.EmailFieldTag);
22+
var HiddenField = exports.HiddenField = (0, _utils.nameWithContext)(Tags.TextFieldTag);
23+
var Label = exports.Label = (0, _utils.nameWithContext)(Tags.LabelTag, "htmlFor");
24+
var MonthField = exports.MonthField = (0, _utils.nameWithContext)(Tags.MonthFieldTag);
25+
var NumberField = exports.NumberField = (0, _utils.nameWithContext)(Tags.NumberFieldTag);
26+
var PasswordField = exports.PasswordField = (0, _utils.nameWithContext)(Tags.PasswordFieldTag);
27+
var Radio = exports.Radio = (0, _utils.nameWithContext)(Tags.RadioTag);
28+
var RangeField = exports.RangeField = (0, _utils.nameWithContext)(Tags.RangeFieldTag);
29+
var SearchField = exports.SearchField = (0, _utils.nameWithContext)(Tags.SearchFieldTag);
30+
var Select = exports.Select = (0, _utils.nameWithContext)(Tags.SelectTag);
31+
var Submit = exports.Submit = (0, _utils.nameWithContext)(Tags.SubmitTag);
32+
var TelephoneField = exports.TelephoneField = (0, _utils.nameWithContext)(Tags.TelephoneFieldTag);
33+
var TextArea = exports.TextArea = (0, _utils.nameWithContext)(Tags.TextAreaTag);
34+
var TextField = exports.TextField = (0, _utils.nameWithContext)(Tags.TextFieldTag);
35+
var TimeField = exports.TimeField = (0, _utils.nameWithContext)(Tags.TimeFieldTag);
36+
var UrlField = exports.UrlField = (0, _utils.nameWithContext)(Tags.UrlFieldTag);
37+
var WeekField = exports.WeekField = (0, _utils.nameWithContext)(Tags.WeekFieldTag);

lib/forms.js

+100
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
exports.FieldsFor = exports.FormFor = exports.FormTag = undefined;
7+
8+
var _react = require("react");
9+
10+
var _tags = require("./tags");
11+
12+
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
13+
14+
var FormTag = exports.FormTag = (0, _react.createClass)({
15+
propTypes: {
16+
url: _react.PropTypes.string.isRequired,
17+
method: _react.PropTypes.oneOf(["get", "post", "put", "patch", "delete"]),
18+
children: _react.PropTypes.node
19+
},
20+
21+
getDefaultProps: function getDefaultProps() {
22+
return {
23+
method: "post"
24+
};
25+
},
26+
render: function render() {
27+
var browserHTTPMethod = "post";
28+
var fakedHTTPMethod = null;
29+
30+
if (this.props.method === "get") {
31+
browserHTTPMethod = "get";
32+
} else if (this.props.method !== "post") {
33+
fakedHTTPMethod = this.props.method;
34+
}
35+
36+
return React.createElement(
37+
"form",
38+
{ "accept-charset": "UTF-8", action: this.props.url, method: browserHTTPMethod },
39+
fakedHTTPMethod && React.createElement(_tags.HiddenFieldTag, { name: "_method", value: fakedHTTPMethod }),
40+
React.createElement(_tags.HiddenFieldTag, { name: "utf8", value: "✓" }),
41+
this.props.children
42+
);
43+
}
44+
});
45+
46+
var FormFor = exports.FormFor = (0, _react.createClass)({
47+
propTypes: {
48+
namespace: _react.PropTypes.string.isRequired
49+
},
50+
51+
childContextTypes: {
52+
railsFormNamespaces: _react.PropTypes.arrayOf(_react.PropTypes.string)
53+
},
54+
55+
getChildContext: function getChildContext() {
56+
return {
57+
railsFormNamespaces: [this.props.namespace]
58+
};
59+
},
60+
render: function render() {
61+
return React.createElement(
62+
FormTag,
63+
this.props,
64+
this.props.children
65+
);
66+
}
67+
});
68+
69+
var FieldsFor = exports.FieldsFor = (0, _react.createClass)({
70+
propTypes: {
71+
namespace: _react.PropTypes.string.isRequired,
72+
index: _react.PropTypes.oneOf([_react.PropTypes.string, _react.PropTypes.number])
73+
},
74+
75+
getDefaultProps: function getDefaultProps() {
76+
return {
77+
index: ""
78+
};
79+
},
80+
81+
82+
contextTypes: {
83+
railsFormNamespaces: _react.PropTypes.arrayOf(_react.PropTypes.string)
84+
},
85+
86+
childContextTypes: {
87+
railsFormNamespaces: _react.PropTypes.arrayOf(_react.PropTypes.string)
88+
},
89+
90+
getChildContext: function getChildContext() {
91+
var _props = this.props;
92+
var namespace = _props.namespace;
93+
var index = _props.index;
94+
95+
96+
return {
97+
railsFormNamespaces: [].concat(_toConsumableArray(this.context.railsFormNamespaces), [namespace, index])
98+
};
99+
}
100+
});

lib/index.js

+41
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
7+
var _forms = require("./forms");
8+
9+
Object.keys(_forms).forEach(function (key) {
10+
if (key === "default") return;
11+
Object.defineProperty(exports, key, {
12+
enumerable: true,
13+
get: function get() {
14+
return _forms[key];
15+
}
16+
});
17+
});
18+
19+
var _fields = require("./fields");
20+
21+
Object.keys(_fields).forEach(function (key) {
22+
if (key === "default") return;
23+
Object.defineProperty(exports, key, {
24+
enumerable: true,
25+
get: function get() {
26+
return _fields[key];
27+
}
28+
});
29+
});
30+
31+
var _tags = require("./tags");
32+
33+
Object.keys(_tags).forEach(function (key) {
34+
if (key === "default") return;
35+
Object.defineProperty(exports, key, {
36+
enumerable: true,
37+
get: function get() {
38+
return _tags[key];
39+
}
40+
});
41+
});

lib/tags.js

+99
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
7+
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
8+
9+
var CheckboxTag = exports.CheckboxTag = function CheckboxTag(props) {
10+
return React.createElement("input", _extends({ type: "checkbox" }, props));
11+
};
12+
13+
var ColorFieldTag = exports.ColorFieldTag = function ColorFieldTag(props) {
14+
return React.createElement("input", _extends({ type: "color" }, props));
15+
};
16+
17+
var DateFieldTag = exports.DateFieldTag = function DateFieldTag(props) {
18+
return React.createElement("input", _extends({ type: "date" }, props));
19+
};
20+
21+
var DatetimeFieldTag = exports.DatetimeFieldTag = function DatetimeFieldTag(props) {
22+
return React.createElement("input", _extends({ type: "datetime" }, props));
23+
};
24+
25+
var DatetimeLocalFieldTag = exports.DatetimeLocalFieldTag = function DatetimeLocalFieldTag(props) {
26+
return React.createElement("input", _extends({ type: "datetime-local" }, props));
27+
};
28+
29+
var EmailFieldTag = exports.EmailFieldTag = function EmailFieldTag(props) {
30+
return React.createElement("input", _extends({ type: "email" }, props));
31+
};
32+
33+
var HiddenFieldTag = exports.HiddenFieldTag = function HiddenFieldTag(props) {
34+
return React.createElement("input", _extends({ type: "hidden", readOnly: true }, props));
35+
};
36+
37+
var LabelTag = exports.LabelTag = function LabelTag(props) {
38+
return React.createElement("label", props);
39+
};
40+
41+
var MonthFieldTag = exports.MonthFieldTag = function MonthFieldTag(props) {
42+
return React.createElement("input", _extends({ type: "month" }, props));
43+
};
44+
45+
var NumberFieldTag = exports.NumberFieldTag = function NumberFieldTag(props) {
46+
return React.createElement("input", _extends({ type: "number" }, props));
47+
};
48+
49+
var PasswordFieldTag = exports.PasswordFieldTag = function PasswordFieldTag(props) {
50+
return React.createElement("input", _extends({ type: "password" }, props));
51+
};
52+
53+
var RadioTag = exports.RadioTag = function RadioTag(props) {
54+
return React.createElement("input", _extends({ type: "radio" }, props));
55+
};
56+
57+
var RangeFieldTag = exports.RangeFieldTag = function RangeFieldTag(props) {
58+
return React.createElement("input", _extends({ type: "range" }, props));
59+
};
60+
61+
var SearchFieldTag = exports.SearchFieldTag = function SearchFieldTag(props) {
62+
return React.createElement("input", _extends({ type: "search" }, props));
63+
};
64+
65+
var SelectTag = exports.SelectTag = function SelectTag(props) {
66+
return React.createElement(
67+
"select",
68+
props,
69+
props.children
70+
);
71+
};
72+
73+
var SubmitTag = exports.SubmitTag = function SubmitTag(props) {
74+
return React.createElement("input", _extends({ type: "submit" }, props));
75+
};
76+
77+
var TelephoneFieldTag = exports.TelephoneFieldTag = function TelephoneFieldTag(props) {
78+
return React.createElement("input", _extends({ type: "tel" }, props));
79+
};
80+
81+
var TextAreaTag = exports.TextAreaTag = function TextAreaTag(props) {
82+
return React.createElement("textarea", props);
83+
};
84+
85+
var TextFieldTag = exports.TextFieldTag = function TextFieldTag(props) {
86+
return React.createElement("input", _extends({ type: "text" }, props));
87+
};
88+
89+
var TimeFieldTag = exports.TimeFieldTag = function TimeFieldTag(props) {
90+
return React.createElement("input", _extends({ type: "time" }, props));
91+
};
92+
93+
var UrlFieldTag = exports.UrlFieldTag = function UrlFieldTag(props) {
94+
return React.createElement("input", _extends({ type: "url" }, props));
95+
};
96+
97+
var WeekFieldTag = exports.WeekFieldTag = function WeekFieldTag(props) {
98+
return React.createElement("input", _extends({ type: "week" }, props));
99+
};

lib/utils.js

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
"use strict";
2+
3+
Object.defineProperty(exports, "__esModule", {
4+
value: true
5+
});
6+
7+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8+
9+
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
10+
11+
var buildInputName = exports.buildInputName = function buildInputName(namespaces, name) {
12+
if (!namespaces || namespaces.length === 0) {
13+
return name;
14+
}
15+
16+
var allTheFields = [].concat(_toConsumableArray(namespaces), [name]);
17+
var finalName = allTheFields.unshift();
18+
19+
while (allTheFields.length > 0) {
20+
finalName = finalName + "[" + allTheFields.unshift() + "]";
21+
}
22+
23+
return finalName;
24+
};
25+
26+
var nameWithContext = exports.nameWithContext = function nameWithContext(Lower) {
27+
var prop = arguments.length <= 1 || arguments[1] === undefined ? "name" : arguments[1];
28+
29+
return function (props, context) {
30+
var replacedProp = buildInputName(context.railsFormNamespaces, props[prop]);
31+
var replacedProps = Object.assign({}, props, _defineProperty({}, prop, replacedProp));
32+
return React.createElement(Lower, replacedProps);
33+
};
34+
};

package.json

+11-4
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,18 @@
11
{
22
"name": "react-rails-form-helpers",
3-
"version": "0.0.1",
3+
"version": "0.1.0-beta",
44
"description": "Build forms that will be submitted to Rails in React.",
5-
"main": "src/index.js",
5+
"main": "lib/index.js",
6+
"repository": "danott/react-rails-form-helpers",
7+
"keywords": [
8+
"react",
9+
"rails",
10+
"forms"
11+
],
612
"scripts": {
7-
"build": "webpack",
13+
"build": "npm run build:lib && npm run build:dist",
14+
"build:dist": "NODE_ENV=production webpack",
15+
"build:lib": "babel ./src --out-dir ./lib --stage 0",
816
"test": "echo \"Error: no test specified\" && exit 1"
917
},
1018
"author": "Dan Ott <npmjs@danott.us> (https://danott.co)",
@@ -20,7 +28,6 @@
2028
"eslint": "^2.8.0",
2129
"eslint-config-rackt": "^1.1.1",
2230
"eslint-plugin-react": "^5.0.1",
23-
"lodash": "^4.11.1",
2431
"react": "^15.0.1",
2532
"webpack": "^1.13.0"
2633
},

src/fields.jsx src/fields.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
import * as Tags from "tags"
2-
import { nameWithContext } from "utils"
1+
import * as Tags from "./tags"
2+
import { nameWithContext } from "./utils"
33

44
export const Checkbox = nameWithContext(Tags.CheckboxTag)
55
export const ColorField = nameWithContext(Tags.ColorFieldTag)

src/forms.jsx

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { createClass, PropTypes } from "react"
2-
import { HiddenFieldTag } from "tags"
2+
import { HiddenFieldTag } from "./tags"
33

44
export const FormTag = createClass({
55
propTypes: {

0 commit comments

Comments
 (0)