FIX: share link from neutralino's app
This commit is contained in:
parent
094ae91af9
commit
8eaafd7e18
4 changed files with 16 additions and 8 deletions
|
|
@ -15,7 +15,7 @@ import { LyricsManager, openLyricsPanel, clearLyricsPanelSync } from './lyrics.j
|
|||
import { createRouter, updateTabTitle, navigate } from './router.js';
|
||||
import { initializePlayerEvents, initializeTrackInteractions, handleTrackAction } from './events.js';
|
||||
import { initializeUIInteractions } from './ui-interactions.js';
|
||||
import { debounce, SVG_PLAY } from './utils.js';
|
||||
import { debounce, SVG_PLAY, getShareUrl } from './utils.js';
|
||||
import { sidePanelManager } from './side-panel.js';
|
||||
import { db } from './db.js';
|
||||
import { syncManager } from './accounts/pocketbase.js';
|
||||
|
|
@ -1050,7 +1050,7 @@ document.addEventListener('DOMContentLoaded', async () => {
|
|||
if (shareBtn) {
|
||||
shareBtn.style.display = playlist.isPublic ? 'flex' : 'none';
|
||||
shareBtn.onclick = () => {
|
||||
const url = `${window.location.origin}/userplaylist/${playlist.id}`;
|
||||
const url = getShareUrl(`/userplaylist/${playlist.id}`);
|
||||
navigator.clipboard.writeText(url).then(() => alert('Link copied to clipboard!'));
|
||||
};
|
||||
}
|
||||
|
|
@ -1091,7 +1091,7 @@ document.addEventListener('DOMContentLoaded', async () => {
|
|||
if (shareBtn) {
|
||||
shareBtn.style.display = playlist.isPublic ? 'flex' : 'none';
|
||||
shareBtn.onclick = () => {
|
||||
const url = `${window.location.origin}/userplaylist/${playlist.id}`;
|
||||
const url = getShareUrl(`/userplaylist/${playlist.id}`);
|
||||
navigator.clipboard.writeText(url).then(() => alert('Link copied to clipboard!'));
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ import {
|
|||
SVG_BIN,
|
||||
getTrackArtists,
|
||||
positionMenu,
|
||||
getShareUrl,
|
||||
} from './utils.js';
|
||||
import { lastFMStorage, libreFmSettings, waveformSettings } from './storage.js';
|
||||
import { showNotification, downloadTrackWithMetadata, downloadAlbumAsZip, downloadPlaylistAsZip } from './downloads.js';
|
||||
|
|
@ -1159,9 +1160,9 @@ export async function handleTrackAction(
|
|||
// Use stored href from card if available, otherwise construct URL
|
||||
const contextMenu = document.getElementById('context-menu');
|
||||
const storedHref = contextMenu?._contextHref;
|
||||
const url = storedHref
|
||||
? `${window.location.origin}${storedHref}`
|
||||
: `${window.location.origin}/track/${item.id || item.uuid}`;
|
||||
const url = getShareUrl(
|
||||
storedHref ? storedHref : `/track/${item.id || item.uuid}`
|
||||
);
|
||||
|
||||
trackCopyLink(type, item.id || item.uuid);
|
||||
navigator.clipboard.writeText(url).then(() => {
|
||||
|
|
|
|||
5
js/ui.js
5
js/ui.js
|
|
@ -18,6 +18,7 @@ import {
|
|||
calculateTotalDuration,
|
||||
formatDuration,
|
||||
escapeHtml,
|
||||
getShareUrl,
|
||||
} from './utils.js';
|
||||
import { openLyricsPanel } from './lyrics.js';
|
||||
import {
|
||||
|
|
@ -3324,7 +3325,7 @@ export class UIRenderer {
|
|||
'<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8"/><polyline points="16 6 12 2 8 6"/><line x1="12" y1="2" x2="12" y2="15"/></svg><span>Share</span>';
|
||||
|
||||
shareBtn.onclick = () => {
|
||||
const url = `${window.location.origin}/userplaylist/${playlist.id || playlist.uuid}`;
|
||||
const url = getShareUrl(`/userplaylist/${playlist.id || playlist.uuid}`);
|
||||
navigator.clipboard.writeText(url).then(() => alert('Link copied to clipboard!'));
|
||||
};
|
||||
fragment.appendChild(shareBtn);
|
||||
|
|
@ -3660,7 +3661,7 @@ export class UIRenderer {
|
|||
};
|
||||
|
||||
shareBtn.onclick = () => {
|
||||
const url = `${window.location.origin}/track/${track.id}`;
|
||||
const url = getShareUrl(`/track/${track.id}`);
|
||||
navigator.clipboard.writeText(url).then(() => {
|
||||
showNotification('Link copied to clipboard!');
|
||||
});
|
||||
|
|
|
|||
|
|
@ -489,3 +489,9 @@ export function positionMenu(menu, x, y, anchorRect = null) {
|
|||
menu.style.left = `${left}px`;
|
||||
menu.style.visibility = 'visible';
|
||||
}
|
||||
|
||||
export const getShareUrl = (path) => {
|
||||
const baseUrl = window.NL_MODE ? 'https://monochrome.tf' : window.location.origin;
|
||||
const safePath = path.startsWith('/') ? path : `/${path}`;
|
||||
return `${baseUrl}${safePath}`;
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue