summaryrefslogtreecommitdiffstats
path: root/themes/danix-xyz-hacker/assets
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-04-15 17:43:32 +0200
committerDanilo M. <danix@danix.xyz>2026-04-15 17:43:32 +0200
commite9883e5732c243ced33020e7f2e1c12388cd6686 (patch)
treed74f05153f5ea44c1a95927641832e76db4ab7af /themes/danix-xyz-hacker/assets
parent93aa1b4bb969093a256a9938e6563c301023a899 (diff)
downloaddanixxyz-e9883e5732c243ced33020e7f2e1c12388cd6686.tar.gz
danixxyz-e9883e5732c243ced33020e7f2e1c12388cd6686.zip
Extract contact form JavaScript to separate file and remove shortcode from contact pages
- Move contact form Alpine.js logic to assets/js/contact-form.js - Simplify contact-form.html shortcode by removing inline script - Load contact-form.js in baseof.html after Alpine.js - Temporarily remove {{< contact_form >}} shortcode from contact pages (shortcode parsing issue to investigate later) - Contact pages now display with placeholder text Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Diffstat (limited to 'themes/danix-xyz-hacker/assets')
-rw-r--r--themes/danix-xyz-hacker/assets/css/main.min.css30
-rw-r--r--themes/danix-xyz-hacker/assets/js/contact-form.js45
2 files changed, 45 insertions, 30 deletions
diff --git a/themes/danix-xyz-hacker/assets/css/main.min.css b/themes/danix-xyz-hacker/assets/css/main.min.css
index 5ab45b1..5f38686 100644
--- a/themes/danix-xyz-hacker/assets/css/main.min.css
+++ b/themes/danix-xyz-hacker/assets/css/main.min.css
@@ -1565,16 +1565,6 @@ button,
border-color: var(--border);
}
-.border-green-300 {
- --tw-border-opacity: 1;
- border-color: rgb(134 239 172 / var(--tw-border-opacity, 1));
-}
-
-.border-red-300 {
- --tw-border-opacity: 1;
- border-color: rgb(252 165 165 / var(--tw-border-opacity, 1));
-}
-
.bg-accent {
background-color: var(--accent);
}
@@ -1587,16 +1577,6 @@ button,
background-color: rgb(0 0 0 / 0.5);
}
-.bg-green-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1));
-}
-
-.bg-red-100 {
- --tw-bg-opacity: 1;
- background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1));
-}
-
.bg-surface {
background-color: var(--surface);
}
@@ -1750,16 +1730,6 @@ button,
color: var(--bg);
}
-.text-green-800 {
- --tw-text-opacity: 1;
- color: rgb(22 101 52 / var(--tw-text-opacity, 1));
-}
-
-.text-red-800 {
- --tw-text-opacity: 1;
- color: rgb(153 27 27 / var(--tw-text-opacity, 1));
-}
-
.text-text {
color: var(--text);
}
diff --git a/themes/danix-xyz-hacker/assets/js/contact-form.js b/themes/danix-xyz-hacker/assets/js/contact-form.js
new file mode 100644
index 0000000..4fa8f55
--- /dev/null
+++ b/themes/danix-xyz-hacker/assets/js/contact-form.js
@@ -0,0 +1,45 @@
+document.addEventListener('alpine:init', () => {
+ Alpine.data('contactForm', () => ({
+ formData: {
+ name: '',
+ email: '',
+ message: ''
+ },
+ isSubmitting: false,
+ statusMessage: '',
+ statusClass: '',
+
+ async submitContactForm() {
+ this.isSubmitting = true;
+ this.statusMessage = '';
+ this.statusClass = '';
+
+ try {
+ const response = await fetch('/contact.php', {
+ method: 'POST',
+ headers: {
+ 'Content-Type': 'application/json',
+ },
+ body: JSON.stringify(this.formData)
+ });
+
+ const data = await response.json();
+
+ if (response.ok) {
+ this.statusMessage = 'Message sent successfully!';
+ this.statusClass = 'bg-green-100 text-green-800 border border-green-300';
+ this.formData = { name: '', email: '', message: '' };
+ } else {
+ this.statusMessage = data.error || 'An error occurred. Please try again.';
+ this.statusClass = 'bg-red-100 text-red-800 border border-red-300';
+ }
+ } catch (error) {
+ this.statusMessage = 'An error occurred. Please try again.';
+ this.statusClass = 'bg-red-100 text-red-800 border border-red-300';
+ console.error('Form submission error:', error);
+ } finally {
+ this.isSubmitting = false;
+ }
+ }
+ }));
+});