1
0
Fork 0
mirror of https://github.com/miniflux/v2.git synced 2025-08-11 17:51:01 +00:00

refactor(js): combine handleShare() and triggerWebShare() functions

This commit is contained in:
Frédéric Guillot 2025-08-02 17:16:40 -07:00
parent 546fbcff8f
commit 5c3be3e74f

View file

@ -323,23 +323,12 @@ function goToListItem(offset) {
* If the share status is "share", it will send an Ajax request to fetch the share URL and then trigger the Web Share API. * If the share status is "share", it will send an Ajax request to fetch the share URL and then trigger the Web Share API.
* If the Web Share API is not supported, it will redirect to the entry URL. * If the Web Share API is not supported, it will redirect to the entry URL.
*/ */
async function handleShare() { async function handleEntryShareAction() {
const link = document.querySelector(':is(a, button)[data-share-status]'); const link = document.querySelector(':is(a, button)[data-share-status]');
if (link.dataset.shareStatus === "shared") { if (link.dataset.shareStatus === "shared") {
const title = document.querySelector(".entry-header > h1 > a"); const title = document.querySelector(".entry-header > h1 > a");
await triggerWebShare(title, link.href); const url = link.href;
}
}
/**
* Trigger the Web Share API to share the entry.
*
* If the Web Share API is not supported, it will redirect to the entry URL.
*
* @param {Element} title - The title element of the entry.
* @param {string} url - The URL of the entry to share.
*/
async function triggerWebShare(title, url) {
if (!navigator.canShare) { if (!navigator.canShare) {
console.error("Your browser doesn't support the Web Share API."); console.error("Your browser doesn't support the Web Share API.");
window.location = url; window.location = url;
@ -353,6 +342,7 @@ async function triggerWebShare(title, url) {
} catch (err) { } catch (err) {
console.error(err); console.error(err);
} }
}
} }
/** /**
@ -1189,7 +1179,7 @@ function initializeClickHandlers() {
onClick(":is(a, button)[data-toggle-bookmark]", (event) => handleBookmark(event.target)); onClick(":is(a, button)[data-toggle-bookmark]", (event) => handleBookmark(event.target));
onClick(":is(a, button)[data-toggle-status]", (event) => handleEntryStatus("next", event.target)); onClick(":is(a, button)[data-toggle-status]", (event) => handleEntryStatus("next", event.target));
onClick(":is(a, button)[data-fetch-content-entry]", handleFetchOriginalContent); onClick(":is(a, button)[data-fetch-content-entry]", handleFetchOriginalContent);
onClick(":is(a, button)[data-share-status]", handleShare); onClick(":is(a, button)[data-share-status]", handleEntryShareAction);
// Page actions with confirmation // Page actions with confirmation
onClick(":is(a, button)[data-action=markPageAsRead]", (event) => onClick(":is(a, button)[data-action=markPageAsRead]", (event) =>