diff --git a/src/core/client.mjs b/src/core/client.mjs
index dc8d0a8..9780a03 100644
--- a/src/core/client.mjs
+++ b/src/core/client.mjs
@@ -52,18 +52,17 @@ const insertMenu = async (db) => {
let _contentWindow;
const sendThemePing = () => {
- if (!_contentWindow) return;
const darkMode = document.body.classList.contains("dark"),
notionTheme = darkMode ? "dark" : "light";
if (renderPing.theme === notionTheme) return;
renderPing.theme = notionTheme;
- _contentWindow.postMessage(renderPing, "*");
+ _contentWindow?.postMessage?.(renderPing, "*");
},
sendRenderPing = (contentWindow) => {
_contentWindow ??= contentWindow;
if (!$modal.hasAttribute("open")) return;
delete renderPing.theme;
- _contentWindow.focus();
+ _contentWindow?.focus?.();
sendThemePing();
};
diff --git a/src/core/menu/components/Checkbox.mjs b/src/core/menu/components/Checkbox.mjs
index 8b49dba..af1bb6e 100644
--- a/src/core/menu/components/Checkbox.mjs
+++ b/src/core/menu/components/Checkbox.mjs
@@ -4,9 +4,10 @@
* (https://notion-enhancer.github.io/) under the MIT license
*/
-import { useState } from "../state.mjs";
+import { setState, useState } from "../state.mjs";
-function Checkbox({ _get, _set, ...props }) {
+function Checkbox({ _get, _set, _requireReload = true, ...props }) {
+ let _initialValue;
const { html, extendProps } = globalThis.__enhancerApi,
$input = html` {
const checked = (await _get?.()) ?? $input.checked;
$input.checked = checked;
+ if (_requireReload) {
+ _initialValue ??= checked;
+ if (checked !== _initialValue) setState({ databaseUpdated: true });
+ }
});
return html`