From 0273eab75395d9f240f6468e1a400453cdefdde6 Mon Sep 17 00:00:00 2001 From: pavel Date: Wed, 25 Feb 2026 01:00:07 +0100 Subject: [PATCH] a --- desktop/app.js | 30 +++++++++++++++++++++++++++--- desktop/index.html | 1 + desktop/preload.js | 5 +++++ desktop/styles.css | 37 +++++++++++++++++++++++++++++++++++++ main.js | 14 ++++++++++---- static/app.js | 10 +++++++++- static/index.html | 1 + static/styles.css | 37 +++++++++++++++++++++++++++++++++++++ 8 files changed, 127 insertions(+), 8 deletions(-) create mode 100644 desktop/preload.js diff --git a/desktop/app.js b/desktop/app.js index 9d8b9d8..f40ef0b 100644 --- a/desktop/app.js +++ b/desktop/app.js @@ -71,6 +71,7 @@ const el = { addGuildBtn: document.getElementById("add-guild-btn"), guildTitle: document.getElementById("guild-title"), createInviteBtn: document.getElementById("create-invite-btn"), + inviteCopiedBadge: document.getElementById("invite-copied-badge"), // Channels channelList: document.getElementById("channel-list"), @@ -536,11 +537,27 @@ async function createInviteLink() { method: "POST", body: JSON.stringify({ max_uses: 50, expires_in_hours: 24 }), }); - const link = `${location.origin}/?invite=${encodeURIComponent(invite.code)}`; + // Use the backend URL if available, otherwise fallback to current origin + const base = API_BASE_URL ? new URL(API_BASE_URL).origin : location.origin; + const link = `${base}/?invite=${encodeURIComponent(invite.code)}`; + + // Use Electron's native clipboard API if available (defined in preload.js) + if (window.electronAPI && window.electronAPI.copyToClipboard) { + try { + await window.electronAPI.copyToClipboard(link); + showCopiedBadge(); + return; + } catch (e) { + console.error("Electron clipboard write failed:", e); + } + } + + // Fallback to navigator.clipboard try { await navigator.clipboard.writeText(link); - alert(`Invite link copied:\n${link}`); - } catch { + showCopiedBadge(); + } catch (err) { + console.error("Navigator clipboard write failed:", err); prompt("Copy invite link:", link); } } catch (err) { @@ -548,6 +565,13 @@ async function createInviteLink() { } } +function showCopiedBadge() { + el.inviteCopiedBadge.classList.remove("hidden"); + setTimeout(() => { + el.inviteCopiedBadge.classList.add("hidden"); + }, 2000); +} + // --- Logic --- async function loadGuilds() { diff --git a/desktop/index.html b/desktop/index.html index c0b54c6..c58c23d 100644 --- a/desktop/index.html +++ b/desktop/index.html @@ -40,6 +40,7 @@