import React from "react"; import { render } from "react-dom"; import debounce from "./debounce"; import { Form, InputGroup } from "Form"; const XHR_TIMEOUT = 1000, MONTHS = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ]; async function onSubmit( form ) { try { let rsp = await fetch( `server-response.json` ).then( rsp => rsp.json() ); if ( !rsp.ok ) { form.setError( rsp.exception.message ); } } catch( e ) { form.setError( "Server error" ); } }; // Debounce for 50ms const onInput = debounce(( e, inputGroup, form ) => { // Update state only of input group in focus inputGroup.checkValidityAndUpdate(); // Update "valid" property of the form form.checkValidityAndUpdate(); }, 50 ); const onShowErrors = ( e, form ) => { e.preventDefault(); form.checkValidityAndUpdateInputGroups(); }; const validateDateTime = ( input ) => { if ( input.current.value === "Choose..." ) { input.setCustomValidity( `Please select ${input.current.title}` ); return false; } return true; }; const MyForm = props => (
); render(