summaryrefslogtreecommitdiff
path: root/assets/js/fediform.js
blob: da5055ac563554ba937d3b3bf38afebdda66b463 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
document.addEventListener("DOMContentLoaded", () => {
    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')
    if (instanceInput) {
        const savedInstance = localStorage.getItem("geedeapro.fediInstance")
        if (savedInstance) instanceInput.value = savedInstance

        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)
            }
            window.open(url, '_blank');
        }

        document.getElementById("fediform-button").addEventListener("click", openInFediverse)
    }


    // copy toot link:
    const copyBtn = document.getElementById("fediform-copy-button")
    if (copyBtn) {
        function copyTootLink() {
            navigator.clipboard.writeText(tootUrl)
            copyBtn.innerText = '✅'
            setTimeout(() => copyBtn.innerText = '📋', 3000)
        }
        copyBtn.addEventListener("click", copyTootLink)
    }
})