mirror of
https://github.com/lostpaul/obsidian-folder-notes.git
synced 2026-07-22 07:40:24 +00:00
Setting to disable sidebar opening
Added a setting to enable/disable the opening of the sidebar on mobile when you click on a folder name in the path Improved the way it stops the sidebar from opening Fixed a bug where the sidebar wouldn't open
This commit is contained in:
parent
a16f4635e7
commit
d4e3da3088
4 changed files with 33 additions and 18 deletions
|
|
@ -74,21 +74,9 @@ export async function addObserver(plugin: FolderNotesPlugin) {
|
|||
if (breadcrumbs.length > 0) {
|
||||
breadcrumbs.forEach((breadcrumb: HTMLElement) => {
|
||||
if (breadcrumb.onclick) return;
|
||||
breadcrumb.onclick = (event: MouseEvent) => handleViewHeaderClick(event, plugin);
|
||||
|
||||
// Remove existing event listener(s) for folder note header breadcrumb when open folder in path enabled
|
||||
if (breadcrumb.classList.contains('has-folder-note')) {
|
||||
const clonedBreadcrumb = breadcrumb.cloneNode(true) as HTMLElement;
|
||||
breadcrumb.parentElement?.replaceChild(clonedBreadcrumb, breadcrumb);
|
||||
clonedBreadcrumb.onclick = (event: MouseEvent) => {
|
||||
if (plugin.settings.openFolderNoteOnClickInPath) {
|
||||
handleViewHeaderClick(event, plugin);
|
||||
} else {
|
||||
// Necessary if open folder in path disabled after breadcrumb rendered
|
||||
breadcrumb.dispatchEvent(new MouseEvent(event.type, event));
|
||||
}
|
||||
}
|
||||
}
|
||||
breadcrumb.addEventListener('click', (e) => {
|
||||
handleViewHeaderClick(e, plugin);
|
||||
}, { capture: true });
|
||||
});
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -1,10 +1,13 @@
|
|||
import { Keymap } from 'obsidian';
|
||||
import { Keymap, Platform } from 'obsidian';
|
||||
import FolderNotesPlugin from 'src/main';
|
||||
import { openFolderNote, createFolderNote, getFolderNote } from 'src/functions/folderNoteFunctions';
|
||||
import { getExcludedFolder } from 'src/ExcludeFolders/functions/folderFunctions';
|
||||
import { addCSSClassToTitleEL, removeCSSClassFromEL } from 'src/functions/styleFunctions';
|
||||
|
||||
export async function handleViewHeaderClick(event: MouseEvent, plugin: FolderNotesPlugin) {
|
||||
event.stopImmediatePropagation();
|
||||
event.preventDefault();
|
||||
event.stopPropagation();
|
||||
if (!(event.target instanceof HTMLElement)) return;
|
||||
if (!plugin.settings.openFolderNoteOnClickInPath) return;
|
||||
|
||||
|
|
@ -19,9 +22,19 @@ export async function handleViewHeaderClick(event: MouseEvent, plugin: FolderNot
|
|||
event.target.onclick = null;
|
||||
event.target.click();
|
||||
}
|
||||
|
||||
const folderNote = getFolderNote(plugin, folderPath);
|
||||
if (folderNote) {
|
||||
return openFolderNote(plugin, folderNote, event);
|
||||
await openFolderNote(plugin, folderNote, event).then(async () => {
|
||||
// @ts-ignore
|
||||
const fileExplorerPlugin = plugin.app.internalPlugins.getEnabledPluginById('file-explorer');
|
||||
if (fileExplorerPlugin && Platform.isMobile && plugin.settings.openSidebarWhenClickingOnPath) {
|
||||
setTimeout(() => { fileExplorerPlugin.revealInFolder(folderNote); }, 200);
|
||||
} else if (fileExplorerPlugin) {
|
||||
fileExplorerPlugin.revealInFolder(folderNote);
|
||||
}
|
||||
});
|
||||
return;
|
||||
} else if (event.altKey || Keymap.isModEvent(event) === 'tab') {
|
||||
if ((plugin.settings.altKey && event.altKey) || (plugin.settings.ctrlKey && Keymap.isModEvent(event) === 'tab')) {
|
||||
await createFolderNote(plugin, folderPath, true, undefined, true);
|
||||
|
|
@ -77,7 +90,7 @@ export async function handleFolderClick(event: MouseEvent, plugin: FolderNotesPl
|
|||
if (plugin.settings.enableCollapsing) return;
|
||||
return event.target.parentElement?.click();
|
||||
}
|
||||
|
||||
|
||||
event.target.onclick = null;
|
||||
event.target.click();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -15,6 +15,18 @@ export async function renderPath(settingsTab: SettingsTab) {
|
|||
})
|
||||
);
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName('Open sidebar when opening a folder note through path (Mobile only)')
|
||||
.setDesc('Open the sidebar when opening a folder note through the path on mobile')
|
||||
.addToggle((toggle) =>
|
||||
toggle
|
||||
.setValue(settingsTab.plugin.settings.openSidebarWhenClickingOnPath)
|
||||
.onChange(async (value) => {
|
||||
settingsTab.plugin.settings.openSidebarWhenClickingOnPath = value;
|
||||
await settingsTab.plugin.saveSettings();
|
||||
})
|
||||
);
|
||||
|
||||
new Setting(containerEl)
|
||||
.setName('Change folder name in the path')
|
||||
.setDesc('Automatically rename a folder name in the path above a note when the folder note is renamed')
|
||||
|
|
|
|||
|
|
@ -59,6 +59,7 @@ export interface FolderNotesSettings {
|
|||
hideCollapsingIcon: boolean;
|
||||
ignoreAttachmentFolder: boolean;
|
||||
tabManagerEnabled: boolean;
|
||||
openSidebarWhenClickingOnPath: boolean;
|
||||
}
|
||||
|
||||
export const DEFAULT_SETTINGS: FolderNotesSettings = {
|
||||
|
|
@ -147,6 +148,7 @@ export const DEFAULT_SETTINGS: FolderNotesSettings = {
|
|||
hideCollapsingIcon: false,
|
||||
tabManagerEnabled: true,
|
||||
ignoreAttachmentFolder: true,
|
||||
openSidebarWhenClickingOnPath: false,
|
||||
};
|
||||
|
||||
export class SettingsTab extends PluginSettingTab {
|
||||
|
|
|
|||
Loading…
Reference in a new issue