From 9ac6e1ddef7a1a9f277b9736fee08d97247adab2 Mon Sep 17 00:00:00 2001 From: Jeff Date: Tue, 9 Apr 2024 15:12:50 -0400 Subject: refactor: Remove NextJS from project --- src/components/FlexibleForm.js | 82 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 src/components/FlexibleForm.js (limited to 'src/components/FlexibleForm.js') diff --git a/src/components/FlexibleForm.js b/src/components/FlexibleForm.js new file mode 100644 index 0000000..831f972 --- /dev/null +++ b/src/components/FlexibleForm.js @@ -0,0 +1,82 @@ +import React from 'react'; +import { Link } from "react-router-dom"; +import logo from "../assets/img/logo.svg"; + +const FlexibleForm = ({ data, onSuccess }) => { + const handleSubmit = async (event) => { + event.preventDefault(); + const formData = new FormData(event.target); + + try { + const response = await fetch(process.env.NEXT_PUBLIC_HOST + data.formAction, { + method: data.formMethod, + body: JSON.stringify(Object.fromEntries(formData)), + headers: { + 'Content-Type': 'application/json' + }, + }); + + const token = response.headers.get('Authorization'); + onSuccess(token); + + } catch (error) { + console.error('Error submitting form:', error); + } + } + + return ( +
+
+ + + + heart shaped handshake logo + + + +

+ {data.title} +

+

+ {data.subtitle} +

+
+ {data.formFields.map((field, index) => ( +
+ + +
+ ))} + +
+ {data.underneathButton && ( +
+ {data.underneathButton.text} +
+ )} + {data.ctaLink && ( +

+ {data.ctaLink.text} {data.ctaLink.linkText} +

+ )} +
+
+ ); +}; + +export default FlexibleForm; -- cgit v1.2.3-70-g09d2