From f37a9d7a83057b637e0171cdee0b3f2c653a7550 Mon Sep 17 00:00:00 2001 From: Lost Paul <70213368+LostPaul@users.noreply.github.com> Date: Sat, 3 Feb 2024 16:49:15 +0100 Subject: [PATCH] Add missing plugin objects --- src/events/MutationObserver.ts | 38 ++++++++++++++-------------- src/events/handleCreate.ts | 8 +++--- src/folderOverview/FolderOverview.ts | 2 +- src/functions/folderNoteFunctions.ts | 2 +- src/functions/styleFunctions.ts | 10 ++++---- src/main.ts | 8 +++--- 6 files changed, 34 insertions(+), 34 deletions(-) diff --git a/src/events/MutationObserver.ts b/src/events/MutationObserver.ts index 6e289e0..0450775 100644 --- a/src/events/MutationObserver.ts +++ b/src/events/MutationObserver.ts @@ -3,32 +3,32 @@ import { Platform, Keymap } from 'obsidian'; import { getFolderNote } from 'src/functions/folderNoteFunctions'; import { handleFolderClick, handleViewHeaderClick } from './handleClick'; -export function addObserver(plugin: FolderNotesPlugin) { +export async function addObserver(plugin: FolderNotesPlugin) { plugin.observer = new MutationObserver((mutations: MutationRecord[]) => { mutations.forEach((rec) => { if (rec.type === 'childList') { (rec.target).querySelectorAll('div.nav-folder-title-content') .forEach((element: HTMLElement) => { if (element.onclick) return; - if (Platform.isMobile && this.settings.disableOpenFolderNoteOnClick) return; + if (Platform.isMobile && plugin.settings.disableOpenFolderNoteOnClick) return; // handle middle click element.addEventListener('auxclick', (event: MouseEvent) => { if (event.button == 1) { - handleFolderClick(event, this) + handleFolderClick(event, plugin) } }, { capture: true }); - element.onclick = (event: MouseEvent) => handleFolderClick(event, this); - this.registerDomEvent(element, 'pointerover', (event: MouseEvent) => { - this.hoveredElement = element; - this.mouseEvent = event; + element.onclick = (event: MouseEvent) => handleFolderClick(event, plugin); + plugin.registerDomEvent(element, 'pointerover', (event: MouseEvent) => { + plugin.hoveredElement = element; + plugin.mouseEvent = event; if (!Keymap.isModEvent(event)) return; if (!(event.target instanceof HTMLElement)) return; const folderPath = event?.target?.parentElement?.getAttribute('data-path') || ''; - const folderNote = getFolderNote(this, folderPath); + const folderNote = getFolderNote(plugin, folderPath); if (!folderNote) return; - this.app.workspace.trigger('hover-link', { + plugin.app.workspace.trigger('hover-link', { event: event, source: 'preview', hoverParent: { @@ -38,15 +38,15 @@ export function addObserver(plugin: FolderNotesPlugin) { linktext: folderNote?.basename, sourcePath: folderNote?.path, }); - this.hoverLinkTriggered = true; + plugin.hoverLinkTriggered = true; }); - this.registerDomEvent(element, 'pointerout', () => { - this.hoveredElement = null; - this.mouseEvent = null; - this.hoverLinkTriggered = false; + plugin.registerDomEvent(element, 'pointerout', () => { + plugin.hoveredElement = null; + plugin.mouseEvent = null; + plugin.hoverLinkTriggered = false; }); }); - if (!this.settings.openFolderNoteOnClickInPath) { return; } + if (!plugin.settings.openFolderNoteOnClickInPath) { return; } (rec.target).querySelectorAll('span.view-header-breadcrumb') .forEach((element: HTMLElement) => { const breadcrumbs = element.parentElement?.querySelectorAll('span.view-header-breadcrumb'); @@ -60,12 +60,12 @@ export function addObserver(plugin: FolderNotesPlugin) { } const folderPath = path.slice(0, -1); breadcrumb.setAttribute('data-path', folderPath); - const folder = this.fmtpHandler?.modifiedFolders.get(folderPath); - if (folder && this.settings.frontMatterTitle.path && this.settings.frontMatterTitle.enabled) { + const folder = plugin.fmtpHandler?.modifiedFolders.get(folderPath); + if (folder && plugin.settings.frontMatterTitle.path && plugin.settings.frontMatterTitle.enabled) { breadcrumb.setAttribute('old-name', folder.name || ''); breadcrumb.innerText = folder.newName || ''; } - const folderNote = getFolderNote(this, folderPath); + const folderNote = getFolderNote(plugin, folderPath); if (folderNote) { breadcrumb.classList.add('has-folder-note'); } @@ -74,7 +74,7 @@ export function addObserver(plugin: FolderNotesPlugin) { if (breadcrumbs.length > 0) { breadcrumbs.forEach((breadcrumb: HTMLElement) => { if (breadcrumb.onclick) return; - breadcrumb.onclick = (event: MouseEvent) => handleViewHeaderClick(event, this); + breadcrumb.onclick = (event: MouseEvent) => handleViewHeaderClick(event, plugin); }); } }); diff --git a/src/events/handleCreate.ts b/src/events/handleCreate.ts index e26dd48..61d5e4f 100644 --- a/src/events/handleCreate.ts +++ b/src/events/handleCreate.ts @@ -15,7 +15,7 @@ export function handleCreate(file: TAbstractFile, plugin: FolderNotesPlugin) { } if (file instanceof TFile) { - const folder = getFolder(this, file); + const folder = getFolder(plugin, file); if (!(folder instanceof TFolder)) { return; } addCSSClassToTitleEL(folder.path, 'has-folder-note'); addCSSClassToTitleEL(file.path, 'is-folder-note'); @@ -25,12 +25,12 @@ export function handleCreate(file: TAbstractFile, plugin: FolderNotesPlugin) { if (!(file instanceof TFolder)) return; if (!plugin.settings.autoCreate) return; - const excludedFolder = getExcludedFolder(this, file.path); + const excludedFolder = getExcludedFolder(plugin, file.path); if (excludedFolder?.disableAutoCreate) return; - const folderNote = getFolderNote(this, file.path); + const folderNote = getFolderNote(plugin, file.path); if (folderNote) return; - createFolderNote(this, file.path, true, undefined, true); + createFolderNote(plugin, file.path, true, undefined, true); addCSSClassToTitleEL(file.path, 'has-folder-note'); } \ No newline at end of file diff --git a/src/folderOverview/FolderOverview.ts b/src/folderOverview/FolderOverview.ts index 74bf108..b833ea9 100644 --- a/src/folderOverview/FolderOverview.ts +++ b/src/folderOverview/FolderOverview.ts @@ -204,7 +204,7 @@ export class FolderOverview { } cloneFileExplorerView(plugin: FolderNotesPlugin, ctx: MarkdownPostProcessorContext, root: HTMLElement, yaml: yamlSettings, pathBlacklist: string[]) { - const folder = getEl(this.yaml.folderPath, plugin) + const folder = getEl(this.yaml.folderPath) let folderElement = folder?.parentElement; let tFolder = plugin.app.vault.getAbstractFileByPath(this.yaml.folderPath); if (!tFolder && yaml.folderPath.trim() == '') { diff --git a/src/functions/folderNoteFunctions.ts b/src/functions/folderNoteFunctions.ts index c51b4cb..e9e08e0 100644 --- a/src/functions/folderNoteFunctions.ts +++ b/src/functions/folderNoteFunctions.ts @@ -99,7 +99,7 @@ export async function createFolderNote(plugin: FolderNotesPlugin, folderPath: st const folder = getFolder(plugin, file); if (!folder) { return; } - plugin.activeFolderDom = getEl(folder.path, plugin); + plugin.activeFolderDom = getEl(folder.path); if (plugin.activeFolderDom) plugin.activeFolderDom.addClass('fn-is-active'); } await leaf.openFile(file); diff --git a/src/functions/styleFunctions.ts b/src/functions/styleFunctions.ts index d6275d6..6aa8587 100644 --- a/src/functions/styleFunctions.ts +++ b/src/functions/styleFunctions.ts @@ -9,14 +9,14 @@ export function loadFileClasses(forceReload = false, plugin: FolderNotesPlugin) plugin.activeFileExplorer = getFileExplorer(); plugin.app.vault.getAllLoadedFiles().forEach((file) => { if (!(file instanceof TFolder)) { return; } - const folderNote = getFolderNote(this, file.path); + const folderNote = getFolderNote(plugin, file.path); if (!folderNote) { removeCSSClassFromEL(file?.path, 'has-folder-note'); removeCSSClassFromEL(file?.path, 'only-has-folder-note'); return; } - const excludedFolder = getExcludedFolder(this, file.path); + const excludedFolder = getExcludedFolder(plugin, file.path); // cleanup after ourselves // Incase settings have changed if (excludedFolder?.disableFolderNote) { @@ -66,7 +66,7 @@ export function removeCSSClassesFromFolder(folder: TFolder) { } export async function addCSSClassToTitleEL(path: string, cssClass: string, waitForCreate = false, count = 0) { - const fileExplorerItem = this.getEl(path); + const fileExplorerItem = getEl(path); if (!fileExplorerItem) { if (waitForCreate && count < 5) { // sleep for a second for the file-explorer event to catch up @@ -88,7 +88,7 @@ export async function addCSSClassToTitleEL(path: string, cssClass: string, waitF export function removeCSSClassFromEL(path: string | undefined, cssClass: string) { if (!path) return; - const fileExplorerItem = this.getEl(path); + const fileExplorerItem = getEl(path); const viewHeaderItems = document.querySelectorAll(`[data-path="${path}"]`); viewHeaderItems.forEach((item) => { item.removeClass(cssClass); @@ -97,7 +97,7 @@ export function removeCSSClassFromEL(path: string | undefined, cssClass: string) fileExplorerItem.removeClass(cssClass); } -export function getEl(path: string, plugin: FolderNotesPlugin): HTMLElement | null { +export function getEl(path: string): HTMLElement | null { const fileExplorer = getFileExplorer(); if (!fileExplorer) { return null; } const fileExplorerItem = fileExplorer.view.fileItems[path]; diff --git a/src/main.ts b/src/main.ts index 000a44d..12063e9 100644 --- a/src/main.ts +++ b/src/main.ts @@ -55,7 +55,7 @@ export default class FolderNotesPlugin extends Plugin { this.tabManager.updateTabs(); }); - addObserver(this); + await addObserver(this); this.observer.observe(document.body, { childList: true, @@ -113,7 +113,7 @@ export default class FolderNotesPlugin extends Plugin { const folderNote = getFolderNote(this, folder.path); if (!folderNote) { return; } if (folderNote.path !== openFile.path) { return; } - this.activeFolderDom = getEl(folder.path, this); + this.activeFolderDom = getEl(folder.path); if (this.activeFolderDom) this.activeFolderDom.addClass('fn-is-active'); })); @@ -176,7 +176,7 @@ export default class FolderNotesPlugin extends Plugin { const attachmentFolder = this.app.vault.getAbstractFileByPath(folderPath); if (attachmentFolder instanceof TFolder) { if (!folder.collapsed) { - getEl(folder.path, this)?.click(); + getEl(folder.path)?.click(); } return folder.children.length <= 2; } @@ -189,7 +189,7 @@ export default class FolderNotesPlugin extends Plugin { async changeName(folder: TFolder, name: string | null | undefined, replacePath: boolean, waitForCreate = false, count = 0) { if (!name) name = folder.name; - let fileExplorerItem = getEl(folder.path, this); + let fileExplorerItem = getEl(folder.path); if (!fileExplorerItem) { if (waitForCreate && count < 5) { await new Promise((r) => setTimeout(r, 500));