summaryrefslogtreecommitdiff
path: root/themes/blowfish/assets/js/process.js
blob: a91afa76245b94b0e2afd2731a2596244c00d108 (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
67
68
69
70
71
if (typeof auth !== 'undefined') {
    var viewsCollection = db.collection('views');
    var likesCollection = db.collection('likes');

    function numberWithCommas(x) {
        return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
    }

    function toggleLoaders(node){
        var classesString = node.className;
        if(classesString == "") return
        var classes = classesString.split(" ");
        for(var i in classes){  
            node.classList.toggle(classes[i])
        }
    }

    var update_views = function (node, id) {
        viewsCollection.doc(id).onSnapshot(doc => {
            var data = doc.data();
            if (data) {
                node.innerText = numberWithCommas(data.views)
            } else {
                node.innerText = 0
            }
            toggleLoaders(node)
        })
    }

    var update_likes = function (node, id) {
        likesCollection.doc(id).onSnapshot(doc => {
            var data = doc.data();
            if (data) {
                node.innerText = numberWithCommas(data.likes)
            } else {
                node.innerText = 0
            }
            toggleLoaders(node)

        })
    }


    auth.signInAnonymously()
        .then(() => {
            var views_nodes = document.querySelectorAll("span[id^='views_']")

            for (var i in views_nodes) {
                var node = views_nodes[i]
                var id = node.id ? node.id.replaceAll("/", "-") : node.id
                if (id) {
                    update_views(node, id)
                }
            }

            var likes_nodes = document.querySelectorAll("span[id^='likes_']")

            for (var i in likes_nodes) {
                var node = likes_nodes[i]
                var id = node.id ? node.id.replaceAll("/", "-") : node.id
                if (id) {
                    update_likes(node, id)
                }
            }
        })
        .catch((error) => {
            var errorCode = error.code;
            var errorMessage = error.message;
            console.error(errorCode, errorMessage)
        });
}