// EstimateForm.jsx — two-column minimal form + contact info (Web3Forms, text-only)
// NOTE: Web3Forms free plan does NOT support file uploads (Pro only), so photos are
// routed to text/email. To enable in-form photo upload later, upgrade Web3Forms to Pro
// (or switch backend) and re-add an .
const { useState: useStateForm } = React;
const WEB3FORMS_KEY = "d1b1278e-bca4-4946-b1ec-32087638b5ae";
function Field({ label, children }) {
return (
);
}
function Radios({ name, options }) {
const [val, setVal] = useStateForm('');
return (
{options.map(o => (
))}
);
}
function EstimateForm() {
const [status, setStatus] = useStateForm('idle'); // idle | sending | success | error
async function handleSubmit(e) {
e.preventDefault();
const form = e.target;
const formData = new FormData(form);
formData.append('access_key', WEB3FORMS_KEY);
setStatus('sending');
try {
const res = await fetch('https://api.web3forms.com/submit', { method: 'POST', body: formData });
const data = await res.json();
if (data.success) {
setStatus('success');
form.reset();
} else {
setStatus('error');
}
} catch (err) {
setStatus('error');
}
}
const btnLabel = status === 'sending'
? 'Sending…'
: status === 'success'
? 'Sent — we’ll be in touch'
: 'Send Request';
return (
— Request an Estimate
Tell us about your wall.
Tell us about your wall below — and text a photo to (747) 243-8969. We'll review the project and suggest the best layout, materials, and a clear estimate.