If you would like to get into contact with us, or have any questions, please fill out this form:
.tork-contact-form{max-width:40rem;margin:1.5rem 0;font:inherit;color:inherit}
.tork-contact-form input,.tork-contact-form textarea{display:block;width:100%;box-sizing:border-box;padding:.55rem .7rem;margin-top:.35rem;font:inherit}
.tork-contact-form button{padding:.65rem 1.15rem;font:inherit;cursor:pointer}
.tork-contact-form button:disabled{opacity:.6;cursor:wait}
.tork-contact-form__status{margin:.85rem 0 0}
(function(){
function boot(root){
var form=root.querySelector(‘form’);
var status=root.querySelector(‘.tork-contact-form__status’);
var button=form.querySelector(‘[type=submit]’);
var api=root.getAttribute(‘data-api’);
var idleLabel=button.textContent||’Send message’;
form.querySelector(‘[name=site]’).value=(location.hostname||”).replace(/^www./i,”);
form.querySelector(‘[name=page_url]’).value=location.href;
form.addEventListener(‘submit’,function(ev){
ev.preventDefault();
status.hidden=false; status.textContent=’Sending…’;
button.disabled=true; button.textContent=’Sending…’;
form.querySelector(‘[name=submitted_at]’).value=new Date().toISOString();
var fd=new FormData(form);
var payload={};
fd.forEach(function(v,k){payload[k]=String(v||”).trim();});
fetch(api,{method:’POST’,headers:{‘Content-Type’:’application/json’,Accept:’application/json’},body:JSON.stringify(payload)})
.then(function(r){return r.json().then(function(d){return {ok:r.ok,data:d||{}};});})
.then(function(res){
status.hidden=false;
if(res.ok&&res.data&&res.data.ok){status.textContent=’Thanks — your message was sent. We will get back to you soon.’;form.reset();}
else{status.textContent=(res.data&&res.data.error)||’Sorry, we could not send your message.’;}
})
.catch(function(){status.hidden=false;status.textContent=’Network error. Please try again.’;})
.finally(function(){button.disabled=false;button.textContent=idleLabel;});
});
}
document.querySelectorAll(‘.tork-contact-form’).forEach(boot);
})();

Leave a Reply
You must be logged in to post a comment.