From 862ba26dace2dff3e204dafad9fe609be8e766f2 Mon Sep 17 00:00:00 2001 From: eltrac Date: Tue, 10 Feb 2026 13:07:45 +0800 Subject: fix: do not load fediform.js when related element is absent --- assets/js/fediform.js | 81 ++++++++++++++++++++++++++++++++------------------- 1 file changed, 51 insertions(+), 30 deletions(-) (limited to 'assets') diff --git a/assets/js/fediform.js b/assets/js/fediform.js index f257d775..da5055ac 100644 --- a/assets/js/fediform.js +++ b/assets/js/fediform.js @@ -1,45 +1,66 @@ document.addEventListener("DOMContentLoaded", () => { - // toggle action area - function toggleActionArea() { - const actionArea = document.getElementById('action-area'); - actionArea.classList.toggle('hidden'); - } - document.getElementById("action-area-btn").addEventListener("click", toggleActionArea) - // Close action area when clicking outside - document.addEventListener('click', function(event) { - const actionArea = document.getElementById('action-area'); - const toggleBtn = event.target.closest('#action-area-btn'); - - if (!toggleBtn && !actionArea.contains(event.target)) { - actionArea.classList.add('hidden'); + const actionArea = document.getElementById('action-area'); + if (actionArea) { + // toggle action area + function toggleActionArea() { + actionArea.classList.toggle('hidden'); + } + document.getElementById("action-area-btn").addEventListener("click", toggleActionArea) + // Close action area when clicking outside + document.addEventListener('click', function(event) { + const actionArea = document.getElementById('action-area'); + const toggleBtn = event.target.closest('#action-area-btn'); + + if (!toggleBtn && !actionArea.contains(event.target)) { + actionArea.classList.add('hidden'); + } + }); + // toggle action area + function toggleActionArea() { + actionArea.classList.toggle('hidden'); } - }); + document.getElementById("action-area-btn").addEventListener("click", toggleActionArea) + // Close action area when clicking outside + document.addEventListener('click', function(event) { + const actionArea = document.getElementById('action-area'); + const toggleBtn = event.target.closest('#action-area-btn'); + + if (!toggleBtn && !actionArea.contains(event.target)) { + actionArea.classList.add('hidden'); + } + }); + } // open toot in fediverse const instanceInput = document.getElementById('fediverse-instance') - const savedInstance = localStorage.getItem("geedeapro.fediInstance") - if (savedInstance) instanceInput.value = savedInstance + if (instanceInput) { + const savedInstance = localStorage.getItem("geedeapro.fediInstance") + if (savedInstance) instanceInput.value = savedInstance - function openInFediverse() { - const instance = instanceInput.value.trim(); + function openInFediverse() { + const instance = instanceInput.value.trim(); - let url = tootUrl - if (instance) { - url = 'https://' + instance + '/authorize_interaction?uri=' + encodeURIComponent(tootUrl); - // save instance url to localStorage - localStorage.setItem("geedeapro.fediInstance", instance) + let url = tootUrl + if (instance) { + url = 'https://' + instance + '/authorize_interaction?uri=' + encodeURIComponent(tootUrl); + // save instance url to localStorage + localStorage.setItem("geedeapro.fediInstance", instance) + } + window.open(url, '_blank'); } - window.open(url, '_blank'); + + document.getElementById("fediform-button").addEventListener("click", openInFediverse) } - document.getElementById("fediform-button").addEventListener("click", openInFediverse) // copy toot link: const copyBtn = document.getElementById("fediform-copy-button") - function copyTootLink() { - navigator.clipboard.writeText(tootUrl) - copyBtn.innerText = '✅' - setTimeout(() => copyBtn.innerText = '📋', 3000) + if (copyBtn) { + function copyTootLink() { + navigator.clipboard.writeText(tootUrl) + copyBtn.innerText = '✅' + setTimeout(() => copyBtn.innerText = '📋', 3000) + } + copyBtn.addEventListener("click", copyTootLink) } - copyBtn.addEventListener("click", copyTootLink) }) -- cgit v1.2.3