53 lines
1.3 KiB
JavaScript
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;
|