diff --git a/package-lock.json b/package-lock.json index 214c41b..307f181 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "@dnd-kit/sortable": "^8.0.0", "@dnd-kit/utilities": "^3.2.2", "monkey-around": "^3.0.0", + "nanoid": "^5.0.9", "react": "19.0.0", "react-dom": "19.0.0", "zustand": "^4.5.4" @@ -2416,6 +2417,24 @@ "dev": true, "license": "MIT" }, + "node_modules/nanoid": { + "version": "5.0.9", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-5.0.9.tgz", + "integrity": "sha512-Aooyr6MXU6HpvvWXKoVoXwKMs/KyVakWwg7xQfv5/S/RIgJMy0Ifa45H9qqYy7pTCszrHzP21Uk4PZq2HpEM8Q==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.js" + }, + "engines": { + "node": "^18 || >=20" + } + }, "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", diff --git a/package.json b/package.json index e74b02f..dad2701 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "@dnd-kit/sortable": "^8.0.0", "@dnd-kit/utilities": "^3.2.2", "monkey-around": "^3.0.0", + "nanoid": "^5.0.9", "react": "19.0.0", "react-dom": "19.0.0", "zustand": "^4.5.4" diff --git a/src/main.ts b/src/main.ts index febab23..90ccc5b 100644 --- a/src/main.ts +++ b/src/main.ts @@ -6,6 +6,7 @@ import { ZOOM_FACTOR_TOLERANCE } from "./services/TabZoom"; import { useViewState } from "./models/ViewState"; import { ObsidianVerticalTabsSettingTab } from "./SettingTab"; import { useSettings } from "./models/PluginContext"; +import { nanoid } from "nanoid"; export default class ObsidianVerticalTabs extends Plugin { settings: Settings = DEFAULT_SETTINGS; @@ -59,6 +60,8 @@ export default class ObsidianVerticalTabs extends Plugin { DEFAULT_SETTINGS, await this.loadData() ); + if (!this.settings.installationID) + this.settings.installationID = nanoid(); } async saveSettings() { diff --git a/src/models/PluginContext.ts b/src/models/PluginContext.ts index 66cdaec..68e50d9 100644 --- a/src/models/PluginContext.ts +++ b/src/models/PluginContext.ts @@ -224,12 +224,16 @@ export const useSettingsBase = create( const { enhancedKeyboardTabSwitch } = get(); const toEnable = enable ?? !enhancedKeyboardTabSwitch; if (toEnable) { - app.workspace.trigger("vertical-tabs:enhanced-keyboard-tab-switch"); + app.workspace.trigger( + "vertical-tabs:enhanced-keyboard-tab-switch" + ); } else { - app.workspace.trigger("vertical-tabs:reset-keyboard-tab-switch"); + app.workspace.trigger( + "vertical-tabs:reset-keyboard-tab-switch" + ); } get().setSettings({ enhancedKeyboardTabSwitch: toEnable }); - } + }, }) ); diff --git a/src/models/PluginSettings.ts b/src/models/PluginSettings.ts index 12b00a1..2baf9c7 100644 --- a/src/models/PluginSettings.ts +++ b/src/models/PluginSettings.ts @@ -1,6 +1,7 @@ import { TabNavigationStrategy } from "./TabNavigation"; interface ObsidianVerticalTabsSettings { + installationID?: string; showActiveTabs: boolean; autoUncollapseGroup: boolean; hideSidebars: boolean;