Update panel.js

This commit is contained in:
Ryo Hilmawan 2020-11-23 16:35:23 +07:00 committed by GitHub
parent feaa55681f
commit 4cb0bf6b56
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -10,12 +10,6 @@
const { createElement } = require("../../pkg/helpers"); const { createElement } = require("../../pkg/helpers");
module.exports = (store) => { module.exports = (store) => {
function initOutliner() {
// Find headers when switching panels
if (document.querySelector('.notion-page-content')) {
startContentObserver();
};
// Observe for page changes // Observe for page changes
const pageObserver = new MutationObserver((list, observer) => { const pageObserver = new MutationObserver((list, observer) => {
for ( let { addedNodes } of list) { for ( let { addedNodes } of list) {
@ -32,10 +26,6 @@ module.exports = (store) => {
} }
} }
}); });
pageObserver.observe(document.body, {
childList: true,
subtree: true,
});
// Observe for header changes // Observe for header changes
const contentObserver = new MutationObserver((list, observer) => { const contentObserver = new MutationObserver((list, observer) => {
@ -56,6 +46,7 @@ module.exports = (store) => {
) findHeaders(); ) findHeaders();
}) })
}); });
function startContentObserver() { function startContentObserver() {
findHeaders(); findHeaders();
contentObserver.disconnect(); contentObserver.disconnect();
@ -68,14 +59,10 @@ module.exports = (store) => {
} }
); );
} }
}
function findHeaders() { function findHeaders() {
const outline = document.querySelector('.outliner'); const outline = document.querySelector('.outliner');
if (!outline) { if (!outline) return;
pageObserver.disconnect();
observer.disconnect();
}
outline.textContent = ''; outline.textContent = '';
const pageContent = document.querySelector('.notion-page-content'); const pageContent = document.querySelector('.notion-page-content');
@ -111,5 +98,20 @@ module.exports = (store) => {
return placeholder.includes('Heading'); return placeholder.includes('Heading');
} }
return initOutliner; return {
onLoad() {
// Find headers when switching panels
if (document.querySelector('.notion-page-content')) {
startContentObserver();
};
pageObserver.observe(document.body, {
childList: true,
subtree: true,
});
},
onSwitch() {
pageObserver.disconnect();
contentObserver.disconnect();
}
}
} }