fix(web): restore SVG icons after copy action

Amolith created

Copy buttons were using textContent to save/restore button content, but
SVG elements have empty textContent. Changed to innerHTML so the icons
properly restore after showing the checkmark.

Assisted-by: Claude Sonnet 4.5 via Crush

Change summary

static/app.js | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)

Detailed changes

static/app.js 🔗

@@ -55,9 +55,9 @@ document.getElementById('copy-btn').addEventListener('click', async () => {
   try {
     await navigator.clipboard.writeText(itemNames);
     const btn = document.getElementById('copy-btn');
-    const original = btn.textContent;
+    const original = btn.innerHTML;
     btn.textContent = '✓';
-    setTimeout(() => btn.textContent = original, 1000);
+    setTimeout(() => btn.innerHTML = original, 1000);
   } catch (err) {
     console.error('Failed to copy:', err);
   }
@@ -68,9 +68,9 @@ document.getElementById('copy-link-btn').addEventListener('click', async () => {
   try {
     await navigator.clipboard.writeText(inviteLink);
     const btn = document.getElementById('copy-link-btn');
-    const original = btn.textContent;
+    const original = btn.innerHTML;
     btn.textContent = '✓';
-    setTimeout(() => btn.textContent = original, 1000);
+    setTimeout(() => btn.innerHTML = original, 1000);
   } catch (err) {
     console.error('Failed to copy invite link:', err);
   }