Skip to content

Commit

Permalink
fix: Switch to Obsidian provided popover suggester (via obsidian-util…
Browse files Browse the repository at this point in the history
…ities module)
  • Loading branch information
valentine195 authored and ebullient committed Mar 20, 2024
1 parent 144cb19 commit dfe837f
Show file tree
Hide file tree
Showing 6 changed files with 199 additions and 152 deletions.
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@
"jest": "^29.7.0",
"mathjax": "^3.2.2",
"obsidian": "^1.5.7",
"obsidian-utilities": "^1.1.3",
"prettier": "^3.2.5",
"reveal.js": "^5.0.5",
"reveal.js-menu": "^2.1.0",
Expand Down
99 changes: 99 additions & 0 deletions pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

65 changes: 50 additions & 15 deletions src/advancedSlides-SettingTab.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,22 @@
import { App, PluginSettingTab, Setting } from 'obsidian';
import { FolderSuggest } from './obsidian/suggesters/FolderSuggester';
import { ThemeSuggest } from './obsidian/suggesters/ThemeSuggester';
import {
App,
PluginSettingTab,
Setting,
TAbstractFile,
TFolder,
} from 'obsidian';
import { FolderInputSuggest } from 'obsidian-utilities';
import {
ThemeInputSuggest,
getThemeFiles,
} from './obsidian/suggesters/ThemeSuggester';
import { AdvancedSlidesPlugin } from './advancedSlides-Plugin';
import { AdvancedSlidesSettings } from './@types';

/** This is because TypeScript's filters are dumb. */
function isFolder(file: TAbstractFile): file is TFolder {
return file instanceof TFolder;
}
export class AdvancedSlidesSettingTab extends PluginSettingTab {
plugin: AdvancedSlidesPlugin;
newSettings: AdvancedSlidesSettings;
Expand Down Expand Up @@ -109,7 +122,15 @@ export class AdvancedSlidesSettingTab extends PluginSettingTab {
'Specify the directory where Slides Extended should export presentations.',
)
.addSearch(cb => {
new FolderSuggest(this.app, cb.inputEl);
const folders: TFolder[] = this.app.vault
.getAllLoadedFiles()
.filter<TFolder>(isFolder);
const modal = new FolderInputSuggest(this.app, cb, folders);
modal.onSelect(({ item }) => {
cb.setValue(item.path);
cb.inputEl.trigger('input');
modal.close();
});
cb.setPlaceholder('Folder')
.setValue(this.newSettings.exportDirectory)
.onChange(value => {
Expand All @@ -134,7 +155,15 @@ export class AdvancedSlidesSettingTab extends PluginSettingTab {
'Specify the vault directory for custom themes. Highlight themes should include "highlight" or "hljs" in their name.',
)
.addSearch(cb => {
new FolderSuggest(this.app, cb.inputEl);
const folders: TFolder[] = this.app.vault
.getAllLoadedFiles()
.filter<TFolder>(isFolder);
const modal = new FolderInputSuggest(this.app, cb, folders);
modal.onSelect(({ item }) => {
cb.setValue(item.path);
cb.inputEl.trigger('input');
modal.close();
});
cb.setPlaceholder('Folder')
.setValue(this.newSettings.themeDirectory)
.onChange(value => {
Expand All @@ -151,12 +180,15 @@ export class AdvancedSlidesSettingTab extends PluginSettingTab {
.setName('Default slide theme')
.setDesc(themeDesc('slide', this.newSettings.themeDirectory))
.addSearch(cb => {
new ThemeSuggest(
'theme',
const modal = new ThemeInputSuggest(
this.app,
cb.inputEl,
this.plugin.obsidianUtils,
);
cb,
getThemeFiles(this.plugin.obsidianUtils, 'theme'),
).onSelect(({ item }) => {
cb.setValue(item);
cb.inputEl.trigger('input');
modal.close();
});
cb.setPlaceholder('black')
.setValue(this.newSettings.theme)
.onChange(value => {
Expand All @@ -168,12 +200,15 @@ export class AdvancedSlidesSettingTab extends PluginSettingTab {
.setName('Default highlight theme')
.setDesc(themeDesc('highlight', this.newSettings.themeDirectory))
.addSearch(cb => {
new ThemeSuggest(
'highlight',
const modal = new ThemeInputSuggest(
this.app,
cb.inputEl,
this.plugin.obsidianUtils,
);
cb,
getThemeFiles(this.plugin.obsidianUtils, 'highlight'),
).onSelect(({ item }) => {
cb.setValue(item);
cb.inputEl.trigger('input');
modal.close();
});
cb.setPlaceholder('zenburn')
.setValue(this.newSettings.highlightTheme)
.onChange(value => {
Expand Down
39 changes: 0 additions & 39 deletions src/obsidian/suggesters/FolderSuggester.ts

This file was deleted.

33 changes: 0 additions & 33 deletions src/obsidian/suggesters/GenericTextSuggester.ts

This file was deleted.

0 comments on commit dfe837f

Please sign in to comment.