converse.rs/modules/tray-service.js
2025-05-16 11:34:46 -07:00

53 lines
1.3 KiB
JavaScript

/**
* Module for Tray functions.
*/
import { Tray } from 'electron';
import path from 'path';
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
let tray = null;
const trayService = {};
const getTrayServiceIcon = (withEnvelope = false) => {
let size;
if (process.platform === 'darwin' || process.platform === 'win32') {
size = '16x16';
} else {
size = '48x48';
}
if (withEnvelope) {
return join(__dirname, '..', 'resources', 'images', 'tray', `envelope-${size}.png`);
} else {
return join(__dirname, '..', 'resources', 'images', `logo-${size}.png`);
}
};
trayService.initTray = (window) => {
const iconPath = getTrayServiceIcon();
tray = new Tray(iconPath);
tray.setToolTip('Converse Desktop');
tray.on('click', () => {
window.webContents.send('open-unread-chat');
trayService.hideEnvelope();
window.show();
});
};
trayService.showEnvelope = () => {
const iconPath = getTrayServiceIcon(true);
tray.setImage(iconPath);
};
trayService.hideEnvelope = () => {
const iconPath = getTrayServiceIcon();
tray.setImage(iconPath);
};
export default trayService;