UNPKG

@open-tender/utils

Version:

A library of utils for use with Open Tender applications that utilize our cloud-based Order API.

53 lines (52 loc) 1.6 kB
import { useRef, useState } from 'react'; import { isEmpty } from '../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 (!isEmpty(errors)) { errors.form = 'Both first and last name are required'; } return errors; }; export const useDineInForm = (initialData = {}, submitGuest) => { const submitRef = useRef(null); const inputRef = useRef(null); const [data, setData] = useState(initialData); const [errors, setErrors] = 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); !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 }; };