apollo-form
Version:
Form state manager
47 lines (46 loc) • 1.96 kB
JavaScript
;
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = __importDefault(require("react"));
const useForm_1 = __importDefault(require("./hooks/useForm"));
const FormContext_1 = __importDefault(require("./form/FormContext"));
function Form(_a, ref) {
var { children, id, style, className, onInit } = _a, params = __rest(_a, ["children", "id", "style", "className", "onInit"]);
const manager = useForm_1.default(Object.assign({ onInit: form => {
if (onInit) {
onInit(form);
}
if (ref) {
if (typeof ref === 'object') {
ref.current = form;
}
else {
ref(form);
}
}
} }, params));
return (react_1.default.createElement(FormContext_1.default.Provider, { value: manager },
react_1.default.createElement("form", { id: id, onSubmit: e => {
e.preventDefault();
e.stopPropagation();
manager.submit().then();
}, onReset: e => {
e.preventDefault();
e.stopPropagation();
manager.reset();
}, style: style, className: className }, children)));
}
exports.default = react_1.default.forwardRef(Form);