From 8e516df834b9b4369e4b094d8d74c946d994b883 Mon Sep 17 00:00:00 2001 From: Eric Jinks Date: Wed, 24 Jan 2018 12:10:43 +1000 Subject: [PATCH 1/3] Add SimpleForm Ajax --- package.json | 1 + src/components/EnquiryFormSimpleAjax.js | 88 +++++++++++++++++++++++++ src/views/Contact.js | 5 +- yarn.lock | 10 +++ 4 files changed, 103 insertions(+), 1 deletion(-) create mode 100644 src/components/EnquiryFormSimpleAjax.js diff --git a/package.json b/package.json index 653d974..260fe45 100644 --- a/package.json +++ b/package.json @@ -29,6 +29,7 @@ "dependencies": { "@researchgate/react-intersection-observer": "^0.6.0", "core-js": "^2.5.3", + "dom-form-serializer": "^1.0.7", "intersection-observer": "^0.5.0", "lodash": "^4.17.4", "netlify-identity-widget": "^1.2.0", diff --git a/src/components/EnquiryFormSimpleAjax.js b/src/components/EnquiryFormSimpleAjax.js new file mode 100644 index 0000000..c8dd891 --- /dev/null +++ b/src/components/EnquiryFormSimpleAjax.js @@ -0,0 +1,88 @@ +import React from 'react' +import { stringify } from 'qs' +import { serialize } from 'dom-form-serializer' +import './EnquiryForm.css' + +const handleSubmit = e => { + e.preventDefault() + const form = e.target + const data = serialize(form) + console.log(data) + fetch(form.action + '?' + stringify(data), { + method: 'POST' + }) + .then(res => { + if (res.ok) { + return res + } else { + throw new Error('Network error') + } + }) + .catch(console.error) +} + +export default ({ + name = 'Simple Form Ajax', + subject = '', // optional subject of the notification email + action = '' +}) => ( +
+ + + +