Skip to content

Commit eda0551

Browse files
Add contact form route
1 parent 93ee274 commit eda0551

File tree

2 files changed

+41
-3
lines changed

2 files changed

+41
-3
lines changed

js/components/nav.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,10 @@ export default (hostComponent) => {
183183
<span class="icon">🍪</span>
184184
<span class="text">Cookie popup</span>
185185
</a>
186+
<a href="/contact" title="Contact page">
187+
<span class="icon">✉️</span>
188+
<span class="text">Contact</span>
189+
</a>
186190
<a href="/web-tutorial" title="Web GPU tutorial">
187191
<span class="icon">🧮</span>
188192
<span class="text">Web GPU tutorial</span>
@@ -206,16 +210,16 @@ export default (hostComponent) => {
206210

207211
if (headerBar === 'true' && burgerPx) {
208212
hostComponent.parentElement.insertAdjacentHTML(
209-
'afterbegin',
210-
`
213+
'afterbegin',
214+
`
211215
<button class="burger-button squarify wireframe border-none" title="Open or close nav menu">
212216
<svg class="icon" viewBox="0 0 100 80" preserveAspectRatio="xMidYMid meet" width="20" height="20" fill="currentColor">
213217
<rect width="100" height="20"></rect>
214218
<rect y="30" width="100" height="20"></rect>
215219
<rect y="60" width="100" height="20"></rect>
216220
</svg>
217221
</button>
218-
`
222+
`,
219223
);
220224

221225
burgerButton = hostComponent.parentElement.querySelector('.burger-button');

js/routes/contact.js

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
// File: routes/contact.js
2+
// Purpose: A simple contact form allowing users to send a message
3+
4+
export default (hostComponent) => {
5+
hostComponent.innerHTML = '';
6+
7+
const indexHTML = `
8+
<h1>Get in Touch</h1>
9+
<p>I’d love to hear from you! Whether it’s a question, feedback, or just to say hello, drop me a message below and I’ll reply as soon as I can.</p>
10+
11+
<form
12+
action="https://formsubmit.co/2e11f6902fdaf5c68eb3324966b05372"
13+
method="POST"
14+
class="centered"
15+
style="margin-top: 2rem;"
16+
>
17+
<div>
18+
<label for="name">Name</label>
19+
<input type="text" id="name" name="name" required>
20+
</div>
21+
<div>
22+
<label for="email">Email</label>
23+
<input type="email" id="email" name="email" required>
24+
</div>
25+
<div>
26+
<label for="message">Message</label>
27+
<textarea id="message" name="message" rows="4" required></textarea>
28+
</div>
29+
<button type="submit">Send Message</button>
30+
</form>
31+
`;
32+
33+
hostComponent.innerHTML = indexHTML;
34+
};

0 commit comments

Comments
 (0)