diff --git a/plugins/notifications/utils.ts b/plugins/notifications/utils.ts index 5b69967c06..7c9c8a3169 100644 --- a/plugins/notifications/utils.ts +++ b/plugins/notifications/utils.ts @@ -7,7 +7,7 @@ import config from './config'; import { cache } from '../../providers/decorators'; import { SongInfo } from '../../providers/song-info'; -import { getMediaIconLocation } from '../utils'; +import { getAssetsDirectoryLocation } from '../utils'; const icon = 'assets/youtube-music.png'; const userData = app.getPath('userData'); @@ -89,7 +89,7 @@ export const saveTempIcon = () => { continue; } - const iconPath = path.resolve(getMediaIconLocation(), `${kind}.png`); + const iconPath = path.resolve(path.resolve(getAssetsDirectoryLocation(), 'media-icons-black'), `${kind}.png`); fs.mkdirSync(path.dirname(destinationPath), { recursive: true }); fs.copyFile(iconPath, destinationPath, () => {}); } diff --git a/plugins/utils.ts b/plugins/utils.ts index 96155a8bf5..44beb152c2 100644 --- a/plugins/utils.ts +++ b/plugins/utils.ts @@ -8,10 +8,12 @@ import is from 'electron-is'; import { ValueOf } from '../utils/type-utils'; import defaultConfig from '../config/defaults'; +export const getAssetsDirectoryLocation = () => path.resolve(__dirname, 'assets'); + export const getMediaIconLocation = () => app.isPackaged ? path.resolve(app.getPath('userData'), 'icons') - : path.resolve(__dirname, 'assets', 'media-icons-black'); + : path.resolve(getAssetsDirectoryLocation(), 'media-icons-black'); // Creates a DOM element from an HTML string export const ElementFromHtml = (html: string): HTMLElement => { diff --git a/providers/prompt-options.ts b/providers/prompt-options.ts index e268b48a18..895531f3c0 100644 --- a/providers/prompt-options.ts +++ b/providers/prompt-options.ts @@ -1,6 +1,8 @@ import path from 'node:path'; -const iconPath = path.join(__dirname, '..', 'assets', 'youtube-music-tray.png'); +import { getAssetsDirectoryLocation } from '../plugins/utils'; + +const iconPath = path.join(getAssetsDirectoryLocation(), 'youtube-music-tray.png'); const promptOptions = { customStylesheet: 'dark', diff --git a/tray.ts b/tray.ts index f753705745..eedad40056 100644 --- a/tray.ts +++ b/tray.ts @@ -6,6 +6,8 @@ import { restart } from './providers/app-controls'; import config from './config'; import getSongControls from './providers/song-controls'; +import { getAssetsDirectoryLocation } from './plugins/utils'; + import type { MenuTemplate } from './menu'; // Prevent tray being garbage collected @@ -39,7 +41,7 @@ export const setUpTray = (app: Electron.App, win: Electron.BrowserWindow) => { } const { playPause, next, previous } = getSongControls(win); - const iconPath = path.join(__dirname, 'assets', 'youtube-music-tray.png'); + const iconPath = path.join(getAssetsDirectoryLocation(), 'youtube-music-tray.png'); const trayIcon = nativeImage.createFromPath(iconPath).resize({ width: 16,