notion-enhancer/repo/integrated-titlebar/frame.mjs

44 lines
1.5 KiB
JavaScript

/**
* notion-enhancer: integrated titlebar
* (c) 2021 dragonwocky <thedragonring.bod@gmail.com> (https://dragonwocky.me/)
* (https://notion-enhancer.github.io/) under the MIT license
*/
'use strict';
import { createWindowButtons } from './buttons.mjs';
export default async function (api, db) {
const { web, registry } = api,
tilingMode = await db.get(['tiling']),
dragareaHeight = await db.get(['dragarea_height']),
tabsEnabled = await registry.enabled('e1692c29-475e-437b-b7ff-3eee872e1a42');
if (tabsEnabled && !tilingMode) {
const windowActionsSelector = '#window-actions';
await web.whenReady([windowActionsSelector]);
const $topbarActions = document.querySelector(windowActionsSelector),
$windowButtons = await createWindowButtons(api, db);
web.render($topbarActions, $windowButtons);
} else {
const dragareaSelector = '[style*="-webkit-app-region: drag;"]';
await web.whenReady([dragareaSelector]);
const dragarea = document.querySelector(dragareaSelector);
dragarea.style.top = '2px';
dragarea.style.height = tilingMode ? '0' : `${dragareaHeight}px`;
document.getElementById('notion').addEventListener('ipc-message', (event) => {
switch (event.channel) {
case 'notion-enhancer:sidebar-width':
dragarea.style.left = event.args[0];
break;
case 'notion-enhancer:panel-width':
dragarea.style.right = event.args[0];
break;
}
});
}
}