/* * notion-enhancer: collapse properties * (c) 2021 dragonwocky (https://dragonwocky.me/) * (https://notion-enhancer.github.io/) under the MIT license */ 'use strict'; export default function ({ web, notion }, db) { const propertyListSelector = '.notion-scroller.vertical [style*="env(safe-area-inset-left)"] > [style="width: 100%; font-size: 14px;"]', $collapseButton = web.html``; $collapseButton.addEventListener('click', async (event) => { if ($collapseButton.dataset.collapsed === 'true') { await db.set([notion.getPageID()], false); $collapseButton.dataset.collapsed = false; } else { await db.set([notion.getPageID()], true); $collapseButton.dataset.collapsed = true; } }); const insertButton = async () => { if (document.contains($collapseButton)) return; const $propertyList = document.querySelector(propertyListSelector); if ($propertyList) { $collapseButton.dataset.collapsed = await db.get([notion.getPageID()], true); $propertyList.before($collapseButton); } }; web.addDocumentObserver(insertButton, [propertyListSelector]); insertButton(); }