updated page

This commit is contained in:
2023-04-17 16:11:57 +10:00
parent 8017f017f2
commit 49d0d3b35a

View File

@@ -1,195 +1,111 @@
<template> <template>
<SMPage class="sm-page-contact"> <SMMastHead title="Contact us" />
<template #container> <SMContainer>
<SMRow break-large> <div class="container-text">
<SMColumn> <h3>Questions & Support</h3>
<h1 class="text-left">Contact Us</h1> <p>
<h2>Questions & Support</h2> If you have a question or would like help with a project, you
<p> can send it our way using the form on this page or be emailing
If you have a question or would like help with a <a href="mailto:hello@stemmechanics.com.au"
project, you can send it our way using the form on this >hello@stemmechanics.com.au</a
page or be emailing >.
<a href="mailto:hello@stemmechanics.com.au" </p>
>hello@stemmechanics.com.au</a <p>
>. You can find us on various social media platforms, and if you
</p> join our
<p> <a href="https://discord.gg/yNzk4x7mpD">Discord</a>
You can find us on various social media platforms, and server, you'll have the opportunity to connect with our team,
if you join our participants, and other individuals who share similar interests.
<a href="https://discord.gg/yNzk4x7mpD">Discord</a> </p>
server, you'll have the opportunity to connect with our <ul class="sm-contact-socials">
team, participants, and other individuals who share <li>
similar interests. <a href="https://facebook.com/stemmechanics"
</p> ><ion-icon name="logo-facebook"></ion-icon
<ul class="sm-contact-socials"> ></a>
<li> </li>
<a href="https://facebook.com/stemmechanics" <li>
><ion-icon name="logo-facebook"></ion-icon <a href="https://mastodon.au/@stemmechanics"
></a> ><ion-icon name="logo-mastodon"></ion-icon
</li> ></a>
<li> </li>
<a href="https://mastodon.au/@stemmechanics" <li>
><ion-icon name="logo-mastodon"></ion-icon <a href="https://www.youtube.com/@stemmechanics"
></a> ><ion-icon name="logo-youtube"></ion-icon
</li> ></a>
<li> </li>
<a href="https://www.youtube.com/@stemmechanics" <li>
><ion-icon name="logo-youtube"></ion-icon <a href="https://twitter.com/stemmechanics"
></a> ><ion-icon name="logo-twitter"></ion-icon
</li> ></a>
<li> </li>
<a href="https://twitter.com/stemmechanics" <li>
><ion-icon name="logo-twitter"></ion-icon <a href="https://github.com/stemmechanics"
></a> ><ion-icon name="logo-github"></ion-icon
</li> ></a>
<li> </li>
<a href="https://github.com/stemmechanics" <li>
><ion-icon name="logo-github"></ion-icon <a href="https://discord.gg/yNzk4x7mpD"
></a> ><ion-icon name="logo-discord"></ion-icon
</li> ></a>
<li> </li>
<a href="https://discord.gg/yNzk4x7mpD" </ul>
><ion-icon name="logo-discord"></ion-icon <h3>Wanting a workshop?</h3>
></a> <p>
</li> We provide both public and private workshops as well as run
</ul> events on behalf of your organisation. If you would like to
<h2>Wanting a workshop?</h2> discuss a potential opportunity, send us an email at
<p> <a href="mailto:hello@stemmechanics.com.au"
We provide both public and private workshops as well as >hello@stemmechanics.com.au</a
run events on behalf of your organisation. If you would >.
like to discuss a potential opportunity, send us an </p>
email at <h3>Address</h3>
<a href="mailto:hello@stemmechanics.com.au" <p>
>hello@stemmechanics.com.au</a We do not have a physical address as our workshops are delivered
>. across Queensland. Visit the
</p> <router-link :to="{ name: 'event-list' }"
<h2>Address</h2> >workshops</router-link
<p> >
We do not have a physical address as our workshops are page for each specific location.
delivered across Queensland. Visit the </p>
<router-link :to="{ name: 'event-list' }" <p>Official mail can be sent to the following postal address:</p>
>workshops</router-link <div class="address text-center">
> <p class="font-size-90">
page for each specific location. STEMMechanics<br />PO Box 36<br />Edmonton, QLD, 4869<br />Australia
</p> </p>
<p>Official mail can be sent to the following address:</p> <p class="font-size-90"><strong>ABN: </strong>15 772 281 735</p>
<div class="text-center"> </div>
<p class="font-size-90"> </div>
STEMMechanics<br />PO Box 36<br />Edmonton, QLD, </SMContainer>
4869<br />Australia
</p>
<p class="font-size-90">
<strong>ABN: </strong>15 772 281 735
</p>
</div>
</SMColumn>
<SMColumn>
<div>
<SMFormCard narrow>
<template v-if="!formSubmitted">
<SMForm v-model="form" @submit="handleSubmit">
<SMInput control="name" />
<SMInput control="email" type="email" />
<SMInput
control="content"
label="Message"
type="textarea" />
<SMButton
type="submit"
block
label="Send Message" />
</SMForm>
</template>
<template v-else>
<h1>Message Sent!</h1>
<p class="text-center">
Your message as been sent.<br />We will
respond as soon as we can.
</p>
<SMButton
block
:to="{ name: 'home' }"
label="Home" />
</template>
</SMFormCard>
</div>
</SMColumn>
</SMRow>
</template>
</SMPage>
</template> </template>
<script setup lang="ts"> <script setup lang="ts">
import { reactive, ref } from "vue"; import SMMastHead from "../components/SMMastHead.vue";
import { useReCaptcha } from "vue-recaptcha-v3";
import SMButton from "../components/SMButton.vue";
import SMFormCard from "../components/SMFormCard.vue";
import SMForm from "../components/SMForm.vue";
import SMInput from "../depreciated/SMInput-old.vue";
import { api } from "../helpers/api";
import { Form, FormControl } from "../helpers/form";
import { And, Email, Min, Required } from "../helpers/validate";
const { executeRecaptcha, recaptchaLoaded } = useReCaptcha();
let form = reactive(
Form({
name: FormControl("", And([Required()])),
email: FormControl("", And([Required(), Email()])),
content: FormControl("", And([Required(), Min(8)])),
})
);
const formSubmitted = ref(false);
const handleSubmit = async () => {
form.loading(true);
try {
await recaptchaLoaded();
const captcha = await executeRecaptcha("submit");
await api.post({
url: "/contact",
body: {
name: form.controls.name.value,
email: form.controls.email.value,
captcha_token: captcha,
content: form.controls.content.value,
},
});
formSubmitted.value = true;
} catch (error) {
form.error("A captcha error occurred. Try reloading the page.");
} finally {
form.loading(false);
}
};
</script> </script>
<style lang="scss"> <style lang="scss">
.sm-page-contact { .container-text {
background-color: #f8f8f8; max-width: 800px;
margin: 0 auto;
line-height: 1.4em;
.sm-contact-socials { h3:not(:first-of-type) {
list-style-type: none; margin-top: 60px;
padding: 0;
display: flex;
font-size: 150%;
justify-content: center;
li {
margin: 0 map-get($spacer, 2);
a,
a:visited {
color: $font-color;
transition: color 0.1s ease-in-out;
&:hover {
color: $primary-color;
}
}
}
} }
} }
.sm-contact-socials {
list-style-type: none;
padding: 0;
display: flex;
font-size: 200%;
justify-content: center;
li {
margin: 0 16px;
}
}
.address {
margin-top: 60px;
}
</style> </style>