Merge pull request #108 from milan-tom/avoid-opening-left-sidebar

Avoid opening left sidebar if closed when folder note clicked in path
This commit is contained in:
Lost Paul 2024-05-26 00:02:24 +02:00 committed by GitHub
commit 65503affd0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 33 additions and 4 deletions

View file

@ -74,7 +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);
breadcrumb.addEventListener('click', (e) => {
handleViewHeaderClick(e, plugin);
}, { capture: true });
});
}
});

View file

@ -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();
}

View file

@ -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')

View file

@ -59,6 +59,7 @@ export interface FolderNotesSettings {
hideCollapsingIcon: boolean;
ignoreAttachmentFolder: boolean;
tabManagerEnabled: boolean;
openSidebarWhenClickingOnPath: boolean;
}
export const DEFAULT_SETTINGS: FolderNotesSettings = {
@ -149,6 +150,7 @@ export const DEFAULT_SETTINGS: FolderNotesSettings = {
hideCollapsingIcon: false,
tabManagerEnabled: true,
ignoreAttachmentFolder: true,
openSidebarWhenClickingOnPath: false,
};
export class SettingsTab extends PluginSettingTab {