1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-06-27 16:36:00 +00:00

Use Web Share API for sharing entry

This commit is contained in:
Jean Khawand 2023-08-01 06:11:39 +02:00 committed by GitHub
parent bf4823bdbd
commit 061f12fbb0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 48 additions and 5 deletions

View file

@ -221,9 +221,9 @@ function updateEntriesStatus(entryIDs, status, callback) {
request.withBody({entry_ids: entryIDs, status: status});
request.withCallback((resp) => {
resp.json().then(count => {
if (callback) {
callback(resp);
}
if (callback) {
callback(resp);
}
if (status === "read") {
decrementUnreadCounter(count);
@ -336,7 +336,7 @@ function handleFetchOriginalContent() {
response.json().then((data) => {
if (data.hasOwnProperty("content") && data.hasOwnProperty("reading_time")) {
document.querySelector(".entry-content").innerHTML = data.content;
document.querySelector(".entry-reading-time").innerHTML = data.reading_time;
document.querySelector(".entry-reading-time").innerHTML = data.reading_time;
}
});
});
@ -557,7 +557,7 @@ function handleConfirmationMessage(linkElement, callback) {
}
linkElement.style.display = "none";
let containerElement = linkElement.parentNode;
let questionElement = document.createElement("span");
@ -638,3 +638,43 @@ function handlePlayerProgressionSave(playerElement) {
request.execute();
}
}
/**
* handle new share entires and already shared entries
*/
function handleShare() {
let link = document.querySelector('a[data-share-status]');
let title = document.querySelector("body > main > section > header > h1 > a");
if (link.dataset.shareStatus === "shared") {
checkShareAPI(title, link.href);
}
if (link.dataset.shareStatus === "share") {
let request = new RequestBuilder(link.href);
request.withCallback((r) => {
checkShareAPI(title, r.url);
});
request.withHttpMethod("GET");
request.execute();
}
}
/**
* wrapper for Web Share API
*/
function checkShareAPI(title, url) {
if (!navigator.canShare) {
console.error("Your browser doesn't support the Web Share API.");
window.location = url;
return;
}
try {
navigator.share({
title: title,
url: url
});
window.location.reload();
} catch (err) {
console.error(err);
window.location.reload();
}
}