added likes

This commit is contained in:
Nuno Coração
2022-09-28 23:43:50 +01:00
parent 0ee898836d
commit cc13795b9e
11 changed files with 130 additions and 6 deletions

View File

@@ -23,6 +23,9 @@
{{ .Content | emojify }}
</div>
<script>
var liked_article = false
if (typeof auth !== 'undefined') {
var oid = "views_{{ .Path }}"
var id = oid ? oid.replaceAll("/", "-") : oid
@@ -52,6 +55,81 @@
console.error(errorCode, errorMessage)
});
}
var oid_likes = "likes_{{ .Path }}"
var id_likes = oid_likes ? oid_likes.replaceAll("/", "-") : oid_likes
var liked = localStorage.getItem(id_likes);
if (liked) {
liked_article = true
document.querySelectorAll("button[id='likes_button']")[0].innerText = "Remove Like"
}
}
function like_article(id_likes) {
console.log("add")
liked_article = true
localStorage.setItem(id_likes, true);
document.querySelectorAll("button[id='likes_button']")[0].innerText = "Remove Like"
auth.signInAnonymously()
.then(() => {
var docRef = db.collection('likes').doc(id_likes)
docRef.get().then((doc) => {
if (doc.exists) {
db.collection('likes').doc(id_likes).update({
likes: firebase.firestore.FieldValue.increment(1)
});
} else {
db.collection('likes').doc(id_likes).set({ likes: 1 })
}
}).catch((error) => {
console.log("Error getting document:", error);
});
})
.catch((error) => {
var errorCode = error.code;
var errorMessage = error.message;
console.error(errorCode, errorMessage)
});
}
function remove_like_article(id_likes) {
console.log("remove")
liked_article = false
localStorage.setItem(id_likes, false);
document.querySelectorAll("button[id='likes_button']")[0].innerText = "Like"
auth.signInAnonymously()
.then(() => {
var docRef = db.collection('likes').doc(id_likes)
docRef.get().then((doc) => {
if (doc.exists) {
db.collection('likes').doc(id_likes).update({
likes: firebase.firestore.FieldValue.increment(-1)
});
} else {
db.collection('likes').doc(id_likes).set({ likes: 0 })
}
}).catch((error) => {
console.log("Error getting document:", error);
});
})
.catch((error) => {
var errorCode = error.code;
var errorMessage = error.message;
console.error(errorCode, errorMessage)
});
}
function process_article() {
var oid_likes = "likes_{{ .Path }}"
var id_likes = oid_likes ? oid_likes.replaceAll("/", "-") : oid_likes
if (!liked_article) {
like_article(id_likes)
} else {
remove_like_article(id_likes)
}
}
</script>
</section>