From 9d70c5b53a3bfaddaa161295335bb16290c6f8b3 Mon Sep 17 00:00:00 2001 From: oxdc <29519076+oxdc@users.noreply.github.com> Date: Thu, 16 Jan 2025 18:43:08 +0800 Subject: [PATCH] close: #51 --- src/SettingTab.ts | 28 +++++++++++++++++++++++++++- src/components/NavigationHeader.tsx | 3 ++- src/main.ts | 1 + src/models/PluginSettings.ts | 2 ++ src/styles/Tab.scss | 20 +++++++++++++++----- src/styles/TabSlot.scss | 18 ++++++++++++++---- 6 files changed, 61 insertions(+), 11 deletions(-) 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 && (