Skip to content

Commit

Permalink
close: #51
Browse files Browse the repository at this point in the history
  • Loading branch information
oxdc committed Jan 16, 2025
1 parent 2a41363 commit 9d70c5b
Show file tree
Hide file tree
Showing 6 changed files with 61 additions and 11 deletions.
28 changes: 27 additions & 1 deletion src/SettingTab.ts
Original file line number Diff line number Diff line change
@@ -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 {
Expand Down Expand Up @@ -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)
Expand Down
3 changes: 2 additions & 1 deletion src/components/NavigationHeader.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -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 } =
Expand Down Expand Up @@ -154,7 +155,7 @@ export const NavigationHeader = (props: NavigationHeaderProps) => {
}
isNavAction={true}
/>
{Platform.isMobile && (
{Platform.isMobile && useTabEditing && (
<IconButton
icon="copy-check"
action="editing-tabs"
Expand Down
1 change: 1 addition & 0 deletions src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,7 @@ export default class ObsidianVerticalTabs extends Plugin {
this.toggle("vt-exclude-self", this.settings.sidebarExcludeSelf);
this.toggle("vt-trim-tab-names", this.settings.trimTabNames);
this.toggle("vt-show-more-buttons", this.settings.showMoreButtons);
this.toggle("vt-use-tab-editing", this.settings.useTabEditing);
this.toggle("vt-zen-mode", this.settings.zenMode);
this.toggle("vt-enable-tab-zoom", this.settings.enableTabZoom);
this.toggle("vt-ephemeral-tabs", this.settings.ephemeralTabs);
Expand Down
2 changes: 2 additions & 0 deletions src/models/PluginSettings.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ interface ObsidianVerticalTabsSettings {
sidebarExcludeSelf: boolean;
trimTabNames: boolean;
showMoreButtons: boolean;
useTabEditing: boolean;
zenMode: boolean;
enableTabZoom: boolean;
enhancedKeyboardTabSwitch: boolean;
Expand All @@ -31,6 +32,7 @@ export const DEFAULT_SETTINGS: ObsidianVerticalTabsSettings = {
sidebarExcludeSelf: true,
trimTabNames: false,
showMoreButtons: false,
useTabEditing: true,
zenMode: false,
enableTabZoom: false,
enhancedKeyboardTabSwitch: false,
Expand Down
20 changes: 15 additions & 5 deletions src/styles/Tab.scss
Original file line number Diff line number Diff line change
Expand Up @@ -26,19 +26,29 @@
}
}

body.is-mobile {
.vertical-tabs {
body {
&.is-mobile {
.obsidian-vertical-tabs-container
.tree-item.is-tab
.action-button[data-action="close"] {
visibility: hidden !important;
visibility: visible !important
}
}

&.editing-tabs {
&.is-mobile.vt-use-tab-editing {
.vertical-tabs {
.obsidian-vertical-tabs-container
.tree-item.is-tab
.action-button[data-action="close"] {
visibility: visible !important;
visibility: hidden !important;
}

&.editing-tabs {
.obsidian-vertical-tabs-container
.tree-item.is-tab
.action-button[data-action="close"] {
visibility: visible !important;
}
}
}
}
Expand Down
18 changes: 14 additions & 4 deletions src/styles/TabSlot.scss
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,23 @@ body {
}

&.is-mobile {
.vertical-tabs {
.obsidian-vertical-tabs-container
.tree-item.is-tab-slot
.drag-handle {
.obsidian-vertical-tabs-container .tree-item.is-tab-slot {
.drag-handle {
display: none !important;
}

.tree-item-self {
height: unset;

div {
display: initial;
}
}
}
}

&.is-mobile.vt-use-tab-editing {
.vertical-tabs {
&:not(.editing-tabs) {
.obsidian-vertical-tabs-container
.tree-item.is-tab-slot
Expand Down

0 comments on commit 9d70c5b

Please sign in to comment.