diff --git a/src/SettingTab.ts b/src/SettingTab.ts index 98fa090..201abb7 100644 --- a/src/SettingTab.ts +++ b/src/SettingTab.ts @@ -1,4 +1,4 @@ -import { App, PluginSettingTab, Setting } from "obsidian"; +import { App, Platform, PluginSettingTab, Setting } from "obsidian"; import ObsidianVerticalTabs from "./main"; import { useSettings } from "./models/PluginContext"; import { @@ -106,6 +106,32 @@ export class ObsidianVerticalTabsSettingTab extends PluginSettingTab { .setSettings({ showMoreButtons: value }); }); }); + + if (Platform.isMobile) { + new Setting(containerEl) + .setName("Mobile action preference") + .setDesc( + this.plugin.settings.useTabEditing + ? "Enable tab editing mode to show control buttons on mobile." + : "Show control buttons such as new-tab buttons and close icons on mobile." + ) + .addDropdown((dropdown) => + dropdown + .addOption("show-all", "Show all buttons") + .addOption("tab-editing", "Enable tab editing mode") + .setValue( + this.plugin.settings.useTabEditing + ? "tab-editing" + : "show-all" + ) + .onChange(async (value) => { + useSettings.getState().setSettings({ + useTabEditing: value === "tab-editing", + }); + this.display(); + }) + ); + } } new Setting(containerEl) diff --git a/src/components/NavigationHeader.tsx b/src/components/NavigationHeader.tsx index 33929af..e33e52d 100644 --- a/src/components/NavigationHeader.tsx +++ b/src/components/NavigationHeader.tsx @@ -21,6 +21,7 @@ export const NavigationHeader = (props: NavigationHeaderProps) => { const hideSidebars = useSettings.use.hideSidebars(); const zenMode = useSettings.use.zenMode(); const toggleZenMode = useSettings.use.toggleZenMode(); + const useTabEditing = useSettings.use.useTabEditing(); const sortStrategy = useTabCache((state) => state.sortStrategy); const { setSortStrategy } = useTabCache(); const { lockFocus, setAllCollapsed, setAllExpanded, scorllToActiveTab } = @@ -154,7 +155,7 @@ export const NavigationHeader = (props: NavigationHeaderProps) => { } isNavAction={true} /> - {Platform.isMobile && ( + {Platform.isMobile && useTabEditing && (