Files
smoothie/src/lib/trayicon.js
T

50 lines
1.0 KiB
JavaScript

import { TrayIcon } from '@tauri-apps/api/tray';
import { getCurrentWindow } from '@tauri-apps/api/window';
import { currentSettings } from './settings';
import { get } from 'svelte/store';
import { Menu } from '@tauri-apps/api/menu';
const mainWindow = getCurrentWindow();
export async function setupTrayIcon() {
// Prevent the window from closing when the close button is clicked
mainWindow.onCloseRequested((event) => {
const settings = get(currentSettings);
if (settings.closeToTray) {
event.preventDefault();
mainWindow.hide();
}
});
const menu = await Menu.new({
items: [
{
id: 'toggle',
text: 'Show/Hide',
action: async () => {
const visible = await mainWindow.isVisible();
console.log(visible);
if (visible) {
mainWindow.hide();
} else {
mainWindow.show();
}
}
},
{
id: 'quit',
text: 'Quit',
action: () => {
mainWindow.destroy();
}
}
]
});
const options = {
menu,
menuOnLeftClick: true
};
return await TrayIcon.new(options);
}