Working on contact script.

This commit is contained in:
JesseBrault0709 2024-06-06 17:51:46 +02:00
parent e696b2ef0d
commit 078bc59253
5 changed files with 27 additions and 5 deletions

View File

@ -4,7 +4,6 @@ import com.jessebrault.ssg.di.Global
import groowt.view.component.web.BaseWebViewComponent import groowt.view.component.web.BaseWebViewComponent
import groowt.view.component.web.WebViewComponent import groowt.view.component.web.WebViewComponent
import jakarta.inject.Inject import jakarta.inject.Inject
import org.jetbrains.annotations.Nullable
import java.time.LocalDate import java.time.LocalDate
import java.time.format.DateTimeFormatter import java.time.format.DateTimeFormatter
@ -15,6 +14,7 @@ class StandardPage extends BaseWebViewComponent {
final String youtubeUrl final String youtubeUrl
final String title final String title
final Closure<WebViewComponent> banner final Closure<WebViewComponent> banner
final List<String> pageScripts
@Inject @Inject
StandardPage(@Global('spotifyUrl') String spotifyUrl, @Global('youtubeUrl') String youtubeUrl, Map attr) { StandardPage(@Global('spotifyUrl') String spotifyUrl, @Global('youtubeUrl') String youtubeUrl, Map attr) {
@ -22,6 +22,7 @@ class StandardPage extends BaseWebViewComponent {
this.youtubeUrl = youtubeUrl this.youtubeUrl = youtubeUrl
this.title = attr.title this.title = attr.title
this.banner = attr.banner ?: { '' } this.banner = attr.banner ?: { '' }
this.pageScripts = attr.pageScripts ?: []
} }
List getMainChildren() { List getMainChildren() {

View File

@ -21,5 +21,6 @@ import com.jessebrault.site.icon.YoutubeIcon
</div> </div>
<p>Copyright $copyrightYear Jesse R. Brault. All rights reserved.</p> <p>Copyright $copyrightYear Jesse R. Brault. All rights reserved.</p>
</footer> </footer>
<Each items={pageScripts} transform={<script src={it}></script>} />
</body> </body>
</html> </html>

View File

@ -3,7 +3,7 @@ package com.jessebrault.site.contact
import com.jessebrault.site.StandardPage import com.jessebrault.site.StandardPage
--- ---
<StandardPage title={title} banner={<ContactBanner />}> <StandardPage title={title} banner={<ContactBanner />} pageScripts={['/contact.js']}>
<article class="contact"> <article class="contact">
<h1>Contact</h1> <h1>Contact</h1>
<p>Please use the following form to contact Jesse Brault directly.</p> <p>Please use the following form to contact Jesse Brault directly.</p>

23
static/contact.js Normal file
View File

@ -0,0 +1,23 @@
window.addEventListener('load', function () {
const contactForm = document.querySelector('form.contact')
contactForm.addEventListener('submit', function (submitEvent) {
submitEvent.preventDefault()
const formData = new FormData(contactForm)
const message = `
From: ${formData.get('name')}
Email: ${formData.get('email')}
Institution: ${formData.get('institution')}
Message:
${formData.get('message')}
`.trim()
const toSend = { message }
console.log(toSend)
// fetch('https://api.jessebrault.com/contact/jessebrault', {
// body: JSON.stringify(toSend),
// headers: 'Content-Type: Application/JSON',
// method: 'POST' // TODO: signal
// })
})
})

View File

@ -1,9 +1,6 @@
:root { :root {
--black: #000000; --black: #000000;
--charcoal: #38383b; --charcoal: #38383b;
--dark-blue: #00416b;
--medium-blue: #005e9b;
--light-blue: #0071bb;
--light-gray: #dedede; --light-gray: #dedede;
--petrol: #476c77; --petrol: #476c77;
--off-white: #fdfdfd; --off-white: #fdfdfd;