50 lines
1.0 KiB
JavaScript
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);
|
|
}
|