refactor: replace verbose JS with hyperscript for contact form timestamp
Removed 34 lines of JavaScript (IIFE, MutationObserver, DOMContentLoaded) and replaced with 2 lines of hyperscript in the existing 'on show' handler.
This commit is contained in:
@@ -15,7 +15,10 @@
|
|||||||
remove .hidden from querySelector('.form-note') in form
|
remove .hidden from querySelector('.form-note') in form
|
||||||
set responseDiv to getElementById('contact-response')
|
set responseDiv to getElementById('contact-response')
|
||||||
if responseDiv set responseDiv.innerHTML to ''
|
if responseDiv set responseDiv.innerHTML to ''
|
||||||
end">
|
end
|
||||||
|
-- Set timestamp for bot protection
|
||||||
|
set tsField to getElementById('contact-form-loaded-at')
|
||||||
|
if tsField set tsField.value to Date.now()">
|
||||||
<div class="info-modal-content">
|
<div class="info-modal-content">
|
||||||
<button class="info-modal-close" commandfor="contact-modal" command="close" aria-label="{{.UI.ContactModal.Close}}">
|
<button class="info-modal-close" commandfor="contact-modal" command="close" aria-label="{{.UI.ContactModal.Close}}">
|
||||||
<iconify-icon icon="mdi:close" width="24" height="24"></iconify-icon>
|
<iconify-icon icon="mdi:close" width="24" height="24"></iconify-icon>
|
||||||
@@ -158,37 +161,4 @@
|
|||||||
</div>
|
</div>
|
||||||
</dialog>
|
</dialog>
|
||||||
|
|
||||||
<!-- Initialize form timestamp on page load and modal open -->
|
|
||||||
<script>
|
|
||||||
(function() {
|
|
||||||
'use strict';
|
|
||||||
|
|
||||||
function resetContactFormTimestamp() {
|
|
||||||
const timestampField = document.getElementById('contact-form-loaded-at');
|
|
||||||
if (timestampField) {
|
|
||||||
timestampField.value = Date.now();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Set initial timestamp on page load
|
|
||||||
document.addEventListener('DOMContentLoaded', resetContactFormTimestamp);
|
|
||||||
|
|
||||||
// Reset timestamp when modal opens (using MutationObserver to catch dialog open)
|
|
||||||
document.addEventListener('DOMContentLoaded', function() {
|
|
||||||
const contactModal = document.getElementById('contact-modal');
|
|
||||||
if (contactModal) {
|
|
||||||
// Observer watches for the 'open' attribute being added
|
|
||||||
const observer = new MutationObserver(function(mutations) {
|
|
||||||
mutations.forEach(function(mutation) {
|
|
||||||
if (mutation.attributeName === 'open' && contactModal.hasAttribute('open')) {
|
|
||||||
resetContactFormTimestamp();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
observer.observe(contactModal, { attributes: true });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|||||||
Reference in New Issue
Block a user