/* * notion-enhancer: integrated titlebar * (c) 2021 dragonwocky (https://dragonwocky.me/) * (https://notion-enhancer.github.io/) under the MIT license */ 'use strict'; export const createWindowButtons = async ({ electron, web, components }, db) => { let minimizeIcon = (await db.get(['minimize_icon'])) || (await components.feather('minus')), maximizeIcon = (await db.get(['maximize_icon'])) || (await components.feather('maximize')), unmaximizeIcon = (await db.get(['unmaximize_icon'])) || (await components.feather('minimize')), closeIcon = (await db.get(['close_icon'])) || (await components.feather('x')); minimizeIcon = minimizeIcon.trim(); maximizeIcon = maximizeIcon.trim(); unmaximizeIcon = unmaximizeIcon.trim(); closeIcon = closeIcon.trim(); minimizeIcon = minimizeIcon.startsWith('') ? minimizeIcon : web.escape(minimizeIcon); maximizeIcon = maximizeIcon.startsWith('') ? maximizeIcon : web.escape(maximizeIcon); unmaximizeIcon = unmaximizeIcon.startsWith('') ? unmaximizeIcon : web.escape(unmaximizeIcon); closeIcon = closeIcon.startsWith('') ? closeIcon : web.escape(closeIcon); const $windowButtons = web.html`
`, $minimize = web.html``, $maximize = web.html``, $unmaximize = web.html``, $close = web.html``; $minimize.addEventListener('click', () => electron.browser.minimize()); $maximize.addEventListener('click', () => electron.browser.maximize()); $unmaximize.addEventListener('click', () => electron.browser.unmaximize()); $close.addEventListener('click', () => electron.browser.close()); electron.browser.on('maximize', () => { $maximize.replaceWith($unmaximize); }); electron.browser.on('unmaximize', () => { $unmaximize.replaceWith($maximize); }); web.render( $windowButtons, $minimize, electron.browser.isMaximized() ? $unmaximize : $maximize, $close ); return $windowButtons; };