@open-tender/utils
Version:
A library of utils for use with Open Tender applications that utilize our cloud-based Order API.
57 lines (56 loc) • 1.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.useDineInForm = void 0;
const react_1 = require("react");
const utils_1 = require("../utils");
const makeDineInFormErrors = (data) => {
const errors = {};
if (!data.first_name) {
errors.first_name = 'Please enter a first name';
}
if (!data.last_name) {
errors.last_name = 'Please enter a last name';
}
if (!(0, utils_1.isEmpty)(errors)) {
errors.form = 'Both first and last name are required';
}
return errors;
};
const useDineInForm = (initialData = {}, submitGuest) => {
const submitRef = (0, react_1.useRef)(null);
const inputRef = (0, react_1.useRef)(null);
const [data, setData] = (0, react_1.useState)(initialData);
const [errors, setErrors] = (0, react_1.useState)({});
const fields = [
{
label: 'First Name',
name: 'first_name',
type: 'text'
},
{
label: 'Last Name',
name: 'last_name',
type: 'text'
}
];
const handleChange = (name, value) => {
setData(Object.assign(Object.assign({}, data), { [name]: value }));
};
const handleSubmit = (evt) => {
var _a, _b;
evt === null || evt === void 0 ? void 0 : evt.preventDefault();
const errs = makeDineInFormErrors(data);
!(0, utils_1.isEmpty)(errs) ? setErrors(errs) : submitGuest(data);
((_a = submitRef.current) === null || _a === void 0 ? void 0 : _a.blur) && ((_b = submitRef.current) === null || _b === void 0 ? void 0 : _b.blur());
};
return {
submitRef,
inputRef,
fields,
data,
errors,
handleChange,
handleSubmit
};
};
exports.useDineInForm = useDineInForm;