diff --git a/scripts/patch-desktop-app.mjs b/scripts/patch-desktop-app.mjs index fefc114..9ed3cd5 100755 --- a/scripts/patch-desktop-app.mjs +++ b/scripts/patch-desktop-app.mjs @@ -18,7 +18,11 @@ const injectTriggerOnce = (scriptId, scriptContent) => : ""); const mainScript = ".webpack/main/index", - rendererScript = ".webpack/renderer/tab_browser_view/preload", + rendererScripts = [ + ".webpack/renderer/tab_browser_view/preload", + ".webpack/renderer/draggable_tabs/preload", + ".webpack/renderer/tabs/preload", + ], patches = { [mainScript]: (scriptContent) => { scriptContent = injectTriggerOnce(mainScript, scriptContent); @@ -35,7 +39,7 @@ const mainScript = ".webpack/main/index", // restore node integration in the renderer process // so the notion-enhancer can be require()-d into it - replace("spellcheck:!0,sandbox:!0", "spellcheck:!0,nodeIntegration:true"); + replace(/sandbox:!0/g, `sandbox:!1,nodeIntegration:!0,session:require('electron').session.fromPartition("persist:notion")`); // bypass webRequest filter to load enhancer menu replace("r.top!==r?t({cancel:!0})", "r.top!==r?t({})"); @@ -67,8 +71,10 @@ const mainScript = ".webpack/main/index", return scriptContent; }, - [rendererScript]: (scriptContent) => - injectTriggerOnce(rendererScript, scriptContent), + ["*"]: (scriptId, scriptContent) => { + if (!rendererScripts.includes(scriptId)) return scriptContent; + return injectTriggerOnce(scriptId, scriptContent); + }, }; export default (scriptId, scriptContent) => { diff --git a/src/_assets/colour-x128.png b/src/assets/colour-x128.png similarity index 100% rename from src/_assets/colour-x128.png rename to src/assets/colour-x128.png diff --git a/src/_assets/colour-x16.png b/src/assets/colour-x16.png similarity index 100% rename from src/_assets/colour-x16.png rename to src/assets/colour-x16.png diff --git a/src/_assets/colour-x256.png b/src/assets/colour-x256.png similarity index 100% rename from src/_assets/colour-x256.png rename to src/assets/colour-x256.png diff --git a/src/_assets/colour-x32.png b/src/assets/colour-x32.png similarity index 100% rename from src/_assets/colour-x32.png rename to src/assets/colour-x32.png diff --git a/src/_assets/colour-x48.png b/src/assets/colour-x48.png similarity index 100% rename from src/_assets/colour-x48.png rename to src/assets/colour-x48.png diff --git a/src/_assets/colour-x512.png b/src/assets/colour-x512.png similarity index 100% rename from src/_assets/colour-x512.png rename to src/assets/colour-x512.png diff --git a/src/_assets/colour-x64.png b/src/assets/colour-x64.png similarity index 100% rename from src/_assets/colour-x64.png rename to src/assets/colour-x64.png diff --git a/src/_assets/icons.svg.js b/src/assets/icons.svg.js similarity index 100% rename from src/_assets/icons.svg.js rename to src/assets/icons.svg.js diff --git a/src/_common/events.js b/src/common/events.js similarity index 100% rename from src/_common/events.js rename to src/common/events.js diff --git a/src/_common/markup.js b/src/common/markup.js similarity index 100% rename from src/_common/markup.js rename to src/common/markup.js diff --git a/src/_common/notion.js b/src/common/notion.js similarity index 100% rename from src/_common/notion.js rename to src/common/notion.js diff --git a/src/_common/registry.js b/src/common/registry.js similarity index 100% rename from src/_common/registry.js rename to src/common/registry.js diff --git a/src/_common/system.js b/src/common/system.js similarity index 100% rename from src/_common/system.js rename to src/common/system.js diff --git a/src/core/client.mjs b/src/core/client.mjs index 5007881..d4c2a50 100644 --- a/src/core/client.mjs +++ b/src/core/client.mjs @@ -4,6 +4,8 @@ * (https://notion-enhancer.github.io/) under the MIT license */ +"use strict"; + import { checkForUpdate } from "./updateCheck.mjs"; import { sendTelemetryPing } from "./sendTelemetry.mjs"; import { Modal, Frame } from "./islands/Modal.mjs"; diff --git a/src/core/electron.cjs b/src/core/electron.cjs index 14b24ef..6ae65c4 100644 --- a/src/core/electron.cjs +++ b/src/core/electron.cjs @@ -4,6 +4,8 @@ * (https://notion-enhancer.github.io/) under the MIT license */ +"use strict"; + const getPreference = (key) => { const { preferences = {} } = globalThis.__notionStore?.getState()?.app; return preferences[key]; diff --git a/src/core/islands/MenuButton.mjs b/src/core/islands/MenuButton.mjs index f3b2501..b98690c 100644 --- a/src/core/islands/MenuButton.mjs +++ b/src/core/islands/MenuButton.mjs @@ -4,6 +4,8 @@ * (https://notion-enhancer.github.io/) under the MIT license */ +"use strict"; + function MenuButton( { icon, notifications, themeOverridesLoaded, ...props }, ...children diff --git a/src/core/islands/Modal.mjs b/src/core/islands/Modal.mjs index 6ce9f48..62c1f7a 100644 --- a/src/core/islands/Modal.mjs +++ b/src/core/islands/Modal.mjs @@ -4,6 +4,8 @@ * (https://notion-enhancer.github.io/) under the MIT license */ +"use strict"; + function Modal(props, ...children) { const { html, extendProps, addKeyListener } = globalThis.__enhancerApi; extendProps(props, { diff --git a/src/core/islands/Panel.mjs b/src/core/islands/Panel.mjs index 40a8b01..64512a1 100644 --- a/src/core/islands/Panel.mjs +++ b/src/core/islands/Panel.mjs @@ -5,6 +5,8 @@ * (https://notion-enhancer.github.io/) under the MIT license */ +"use strict"; + import { Tooltip } from "./Tooltip.mjs"; import { TopbarButton } from "./TopbarButton.mjs"; import { Select } from "../menu/islands/Select.mjs"; diff --git a/src/core/islands/Tooltip.mjs b/src/core/islands/Tooltip.mjs index fe6b355..34d94e0 100644 --- a/src/core/islands/Tooltip.mjs +++ b/src/core/islands/Tooltip.mjs @@ -4,6 +4,8 @@ * (https://notion-enhancer.github.io/) under the MIT license */ +"use strict"; + function Tooltip(props, ...children) { const { html, extendProps } = globalThis.__enhancerApi; extendProps(props, { diff --git a/src/core/islands/TopbarButton.mjs b/src/core/islands/TopbarButton.mjs index 537d006..27bd018 100644 --- a/src/core/islands/TopbarButton.mjs +++ b/src/core/islands/TopbarButton.mjs @@ -4,6 +4,8 @@ * (https://notion-enhancer.github.io/) under the MIT license */ +"use strict"; + function TopbarButton({ icon, ...props }) { const { html, extendProps, addMutationListener } = globalThis.__enhancerApi; extendProps(props, { @@ -16,20 +18,20 @@ function TopbarButton({ icon, ...props }) { &[data-active]:bg-[color:var(--theme--bg-hover)]`, }); - const notionTopbar = ".notion-topbar-favorite-button", + const topbarFavorite = ".notion-topbar-favorite-button", $button = html``, - addToTopbar = () => { + addToTopbar = (after = topbarFavorite) => { if (document.contains($button)) return; - document.querySelector(notionTopbar)?.after($button); + document.querySelector(after)?.after($button); }; - $button.addToTopbar = () => { - addToTopbar(); - addMutationListener(notionTopbar, addToTopbar); + $button.addToTopbar = (after = topbarFavorite) => { + addMutationListener(after, () => addToTopbar(after)); + addToTopbar(after); }; return $button; } diff --git a/src/core/menu/index.html b/src/core/menu/index.html index b5ed36e..9f81db7 100644 --- a/src/core/menu/index.html +++ b/src/core/menu/index.html @@ -6,8 +6,8 @@ notion-enhancer menu - - + + diff --git a/src/core/menu/islands/Banner.mjs b/src/core/menu/islands/Banner.mjs index 246ae44..ffcda2e 100644 --- a/src/core/menu/islands/Banner.mjs +++ b/src/core/menu/islands/Banner.mjs @@ -4,6 +4,8 @@ * (https://notion-enhancer.github.io/) under the MIT license */ +"use strict"; + import { Popup } from "./Popup.mjs"; import { Button } from "./Button.mjs"; import { Description } from "./Description.mjs"; diff --git a/src/core/menu/islands/Button.mjs b/src/core/menu/islands/Button.mjs index 42ac31d..58c2281 100644 --- a/src/core/menu/islands/Button.mjs +++ b/src/core/menu/islands/Button.mjs @@ -4,6 +4,8 @@ * (https://notion-enhancer.github.io/) under the MIT license */ +"use strict"; + function Button({ icon, variant, tagName, ...props }, ...children) { const { html, extendProps } = globalThis.__enhancerApi; extendProps(props, { diff --git a/src/core/menu/islands/Checkbox.mjs b/src/core/menu/islands/Checkbox.mjs index c101ddf..5784a5a 100644 --- a/src/core/menu/islands/Checkbox.mjs +++ b/src/core/menu/islands/Checkbox.mjs @@ -4,6 +4,8 @@ * (https://notion-enhancer.github.io/) under the MIT license */ +"use strict"; + function Checkbox({ _get, _set, _requireReload = true, ...props }) { let _initialValue; const { html, extendProps, setState, useState } = globalThis.__enhancerApi, diff --git a/src/core/menu/islands/Description.mjs b/src/core/menu/islands/Description.mjs index 8c2757b..2d87478 100644 --- a/src/core/menu/islands/Description.mjs +++ b/src/core/menu/islands/Description.mjs @@ -4,6 +4,8 @@ * (https://notion-enhancer.github.io/) under the MIT license */ +"use strict"; + function Description(props, ...children) { const { html, extendProps } = globalThis.__enhancerApi; extendProps(props, { diff --git a/src/core/menu/islands/Footer.mjs b/src/core/menu/islands/Footer.mjs index e22df9e..866a13f 100644 --- a/src/core/menu/islands/Footer.mjs +++ b/src/core/menu/islands/Footer.mjs @@ -4,6 +4,8 @@ * (https://notion-enhancer.github.io/) under the MIT license */ +"use strict"; + import { Button } from "./Button.mjs"; function Footer({ categories }) { @@ -30,7 +32,7 @@ function Footer({ categories }) { }); useState(["view"], ([view]) => { - let footerOpen = $reload.style.display !== "none"; + let [footerOpen] = useState(["databaseUpdated"]); for (const [ids, $btn] of $categories) { const modInCategory = ids.some((id) => id === view); if (modInCategory) footerOpen = true; @@ -40,7 +42,7 @@ function Footer({ categories }) { }); useState(["databaseUpdated"], ([databaseUpdated]) => { $reload.style.display = databaseUpdated ? "" : "none"; - setState({ footerOpen: true }); + if (databaseUpdated) setState({ footerOpen: true }); }); return html`