diff --git a/website/canvas.html b/website/canvas.html
index 8bf9544..6b80e15 100644
--- a/website/canvas.html
+++ b/website/canvas.html
@@ -3447,23 +3447,25 @@
return `${proto}//${window.location.host}/${communitySlug}/rspace`;
}
- shareBadge.addEventListener("click", () => {
- const isOpen = sharePanel.classList.toggle("open");
- if (isOpen) {
- // Close people panel if open
- peoplePanel.classList.remove("open");
- const url = getShareUrl();
- document.getElementById("share-url").value = url;
- document.getElementById("share-qr").src =
- `https://api.qrserver.com/v1/create-qr-code/?size=180x180&data=${encodeURIComponent(url)}`;
- }
- });
+ if (shareBadge) {
+ shareBadge.addEventListener("click", () => {
+ const isOpen = sharePanel.classList.toggle("open");
+ if (isOpen) {
+ // Close people panel if open
+ peoplePanel.classList.remove("open");
+ const url = getShareUrl();
+ document.getElementById("share-url").value = url;
+ document.getElementById("share-qr").src =
+ `https://api.qrserver.com/v1/create-qr-code/?size=180x180&data=${encodeURIComponent(url)}`;
+ }
+ });
+ }
- document.getElementById("share-panel-close").addEventListener("click", () => {
+ document.getElementById("share-panel-close")?.addEventListener("click", () => {
sharePanel.classList.remove("open");
});
- document.getElementById("share-copy-btn").addEventListener("click", async () => {
+ document.getElementById("share-copy-btn")?.addEventListener("click", async () => {
const url = document.getElementById("share-url").value;
await navigator.clipboard.writeText(url);
const btn = document.getElementById("share-copy-btn");
@@ -3471,7 +3473,7 @@
setTimeout(() => btn.textContent = "Copy", 2000);
});
- document.getElementById("share-send-btn").addEventListener("click", async () => {
+ document.getElementById("share-send-btn")?.addEventListener("click", async () => {
const email = document.getElementById("share-email").value.trim();
const status = document.getElementById("share-email-status");
if (!email) return;
@@ -3500,9 +3502,9 @@
// Click-outside closes share panel
document.addEventListener("click", (e) => {
- if (sharePanel.classList.contains("open") &&
+ if (sharePanel?.classList.contains("open") &&
!sharePanel.contains(e.target) &&
- !shareBadge.contains(e.target)) {
+ (!shareBadge || !shareBadge.contains(e.target))) {
sharePanel.classList.remove("open");
}
});