mirror of
https://github.com/lostpaul/obsidian-folder-notes.git
synced 2026-07-22 07:40:24 +00:00
153 lines
6.8 KiB
TypeScript
153 lines
6.8 KiB
TypeScript
import { Setting } from "obsidian";
|
|
import { SettingsTab } from "./SettingsTab";
|
|
export async function renderFileExplorer(settingsTab: SettingsTab) {
|
|
const containerEl = settingsTab.settingsPage;
|
|
settingsTab.settingsPage.createEl('h1', { text: 'File explorer settings' });
|
|
|
|
new Setting(containerEl)
|
|
.setName('Hide folder note')
|
|
.setDesc('Hide the folder note in the file explorer')
|
|
.addToggle((toggle) =>
|
|
toggle
|
|
.setValue(settingsTab.plugin.settings.hideFolderNote)
|
|
.onChange(async (value) => {
|
|
settingsTab.plugin.settings.hideFolderNote = value;
|
|
await settingsTab.plugin.saveSettings();
|
|
if (value) {
|
|
document.body.classList.add('hide-folder-note');
|
|
} else {
|
|
document.body.classList.remove('hide-folder-note');
|
|
}
|
|
settingsTab.display();
|
|
})
|
|
);
|
|
|
|
const setting2 = new Setting(containerEl)
|
|
.setName('Don\'t open folder notes by clicking on the name (on mobile)')
|
|
.setDesc('Folder notes don\'t open when clicking on the name of the folder (on mobile)')
|
|
.addToggle((toggle) =>
|
|
toggle
|
|
.setValue(settingsTab.plugin.settings.disableOpenFolderNoteOnClick)
|
|
.onChange(async (value) => {
|
|
settingsTab.plugin.settings.disableOpenFolderNoteOnClick = value;
|
|
await settingsTab.plugin.saveSettings();
|
|
})
|
|
);
|
|
|
|
setting2.infoEl.appendText('Requires a restart to take effect');
|
|
setting2.infoEl.style.color = settingsTab.app.vault.getConfig('accentColor') as string || '#7d5bed';
|
|
|
|
new Setting(containerEl)
|
|
.setName('Only open folder notes through the name')
|
|
.setDesc('Only open folder notes in the file explorer by clicking on the folder name')
|
|
.addToggle((toggle) =>
|
|
toggle
|
|
.setValue(settingsTab.plugin.settings.allowWhitespaceCollapsing)
|
|
.onChange(async (value) => {
|
|
if (!value) {
|
|
document.body.classList.add('fn-whitespace-stop-collapsing');
|
|
} else {
|
|
document.body.classList.remove('fn-whitespace-stop-collapsing');
|
|
}
|
|
settingsTab.plugin.settings.allowWhitespaceCollapsing = value;
|
|
await settingsTab.plugin.saveSettings();
|
|
})
|
|
);
|
|
const disableSetting = new Setting(containerEl);
|
|
disableSetting.setName('Disable folder collapsing');
|
|
disableSetting.setDesc('Disable the ability to collapse folders by clicking exactly on the folder name');
|
|
disableSetting.addToggle((toggle) =>
|
|
toggle
|
|
.setValue(!settingsTab.plugin.settings.enableCollapsing)
|
|
.onChange(async (value) => {
|
|
settingsTab.plugin.settings.enableCollapsing = !value;
|
|
await settingsTab.plugin.saveSettings();
|
|
})
|
|
);
|
|
disableSetting.infoEl.appendText('Requires a restart to take effect');
|
|
disableSetting.infoEl.style.color = settingsTab.app.vault.getConfig('accentColor') as string || '#7d5bed';
|
|
|
|
new Setting(containerEl)
|
|
.setName('Use submenus')
|
|
.setDesc('Use submenus for file/folder commands')
|
|
.addToggle((toggle) =>
|
|
toggle
|
|
.setValue(settingsTab.plugin.settings.useSubmenus)
|
|
.onChange(async (value) => {
|
|
settingsTab.plugin.settings.useSubmenus = value;
|
|
await settingsTab.plugin.saveSettings();
|
|
settingsTab.display();
|
|
})
|
|
);
|
|
|
|
if (settingsTab.plugin.settings.frontMatterTitle.enabled) {
|
|
new Setting(containerEl)
|
|
.setName('Change folder name in the file explorer')
|
|
.setDesc('Automatically rename a folder name in the file explorer when the folder note is renamed')
|
|
.addToggle((toggle) =>
|
|
toggle
|
|
.setValue(settingsTab.plugin.settings.frontMatterTitle.explorer)
|
|
.onChange(async (value) => {
|
|
settingsTab.plugin.settings.frontMatterTitle.explorer = value;
|
|
await settingsTab.plugin.saveSettings();
|
|
settingsTab.plugin.app.vault.getFiles().forEach((file) => {
|
|
settingsTab.plugin.fmtpHandler?.handleRename({ id: '', result: false, path: file.path }, false);
|
|
});
|
|
})
|
|
);
|
|
}
|
|
|
|
settingsTab.settingsPage.createEl('h3', { text: 'Style settings' });
|
|
|
|
new Setting(containerEl)
|
|
.setName('Underline the name of folder notes')
|
|
.setDesc('Add an underline to folders that have a folder note in the file explorer')
|
|
.addToggle((toggle) =>
|
|
toggle
|
|
.setValue(settingsTab.plugin.settings.underlineFolder)
|
|
.onChange(async (value) => {
|
|
settingsTab.plugin.settings.underlineFolder = value;
|
|
if (value) {
|
|
document.body.classList.add('folder-note-underline');
|
|
} else {
|
|
document.body.classList.remove('folder-note-underline');
|
|
}
|
|
await settingsTab.plugin.saveSettings();
|
|
})
|
|
);
|
|
|
|
new Setting(containerEl)
|
|
.setName('Bold the name of folder notes')
|
|
.setDesc('Make the folder name bold in the file explorer')
|
|
.addToggle((toggle) =>
|
|
toggle
|
|
.setValue(settingsTab.plugin.settings.boldName)
|
|
.onChange(async (value) => {
|
|
settingsTab.plugin.settings.boldName = value;
|
|
if (value) {
|
|
document.body.classList.add('folder-note-bold');
|
|
} else {
|
|
document.body.classList.remove('folder-note-bold');
|
|
}
|
|
await settingsTab.plugin.saveSettings();
|
|
})
|
|
);
|
|
|
|
new Setting(containerEl)
|
|
.setName('Cursive the name of folder notes')
|
|
.setDesc('Make the folder name cursive in the file explorer')
|
|
.addToggle((toggle) =>
|
|
toggle
|
|
.setValue(settingsTab.plugin.settings.cursiveName)
|
|
.onChange(async (value) => {
|
|
settingsTab.plugin.settings.cursiveName = value;
|
|
if (value) {
|
|
document.body.classList.add('folder-note-cursive');
|
|
} else {
|
|
document.body.classList.remove('folder-note-cursive');
|
|
}
|
|
await settingsTab.plugin.saveSettings();
|
|
})
|
|
);
|
|
|
|
}
|