/** * notion-enhancer: titlebar * (c) 2024 dragonwocky (https://dragonwocky.me/) * (https://notion-enhancer.github.io/) under the MIT license */ import { Tooltip } from "../../core/islands/Tooltip.mjs"; import { TopbarButton } from "../../core/islands/TopbarButton.mjs"; const minimizeLabel = "Minimize window", maximizeLabel = "Maximize window", unmaximizeLabel = "Unmaximize window", closeLabel = "Close window"; const createWindowButtons = async () => { const { modDatabase } = globalThis.__enhancerApi, db = await modDatabase("a5658d03-21c6-4088-bade-fa4780459133"), minimizeIcon = await db.get("minimizeIcon"), maximizeIcon = await db.get("maximizeIcon"), unmaximizeIcon = await db.get("unmaximizeIcon"), closeIcon = await db.get("closeIcon"); const { html, sendMessage, invokeInWorker } = globalThis.__enhancerApi, $minimize = html`<${TopbarButton} onclick=${() => sendMessage("notion-enhancer:titlebar", "minimize")} aria-label="${minimizeLabel}" innerHTML="${minimizeIcon?.content}" icon="minus" />`, $maximize = html`<${TopbarButton} onclick=${() => sendMessage("notion-enhancer:titlebar", "maximize")} aria-label="${maximizeLabel}" innerHTML="${maximizeIcon?.content}" icon="maximize" />`, $unmaximize = html`<${TopbarButton} onclick=${() => sendMessage("notion-enhancer:titlebar", "unmaximize")} aria-label="${unmaximizeLabel}" innerHTML="${unmaximizeIcon?.content}" icon="minimize" />`, $close = html`<${TopbarButton} onclick=${() => sendMessage("notion-enhancer:titlebar", "close")} class="!hover:(bg-red-600 text-white)" aria-label="${closeLabel}" innerHTML="${closeIcon?.content}" icon="x" />`; html`<${Tooltip}>${minimizeLabel}`.attach($minimize, "bottom"); html`<${Tooltip}>${maximizeLabel}`.attach($maximize, "bottom"); html`<${Tooltip}>${unmaximizeLabel}`.attach($unmaximize, "bottom"); html`<${Tooltip}>${closeLabel}`.attach($close, "bottom"); const resizeWindow = async () => { const isMaximized = await invokeInWorker("notion-enhancer:titlebar", { query: "is-maximized", }); $maximize.style.display = isMaximized ? "none" : ""; $unmaximize.style.display = isMaximized ? "" : "none"; }; addEventListener("resize", resizeWindow); resizeWindow(); return html`
${$minimize}${$maximize}${$unmaximize}${$close}
`; }; if (globalThis.IS_TABS) { const appendAfter = ".hide-scrollbar"; createWindowButtons().then(($buttons) => { document.querySelector(appendAfter)?.after($buttons); }); } export { createWindowButtons };