From b37f46e571ec1b8dd136d251c9547f5f05385ff2 Mon Sep 17 00:00:00 2001 From: shumadrid <195762734+shumadrid@users.noreply.github.com> Date: Tue, 8 Apr 2025 10:36:26 +0200 Subject: [PATCH] fix: fix double computation on changing intervals --- package-lock.json | 6 +++--- src/GitChangelogPlugin.svelte.ts | 6 +++++- src/core/FileChangelogManager.ts | 3 ++- src/core/VaultChangelogManager.ts | 3 ++- src/settings/ui/CustomLocale.ts | 2 +- src/settings/ui/CustomTimeZone.ts | 3 +-- 6 files changed, 14 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index ff8b8c0..83bc7da 100644 --- a/package-lock.json +++ b/package-lock.json @@ -8966,9 +8966,9 @@ } }, "node_modules/obsidian-dev-utils": { - "version": "24.0.1", - "resolved": "https://registry.npmjs.org/obsidian-dev-utils/-/obsidian-dev-utils-24.0.1.tgz", - "integrity": "sha512-4Ayh/WZSMq1D3M+RvoXQA4HC32V1Flgqeu8HDHZLSjaTozCdtz2p+0AlaVFsozvaK786/gTkP+7NZe0aBIoFvQ==", + "version": "24.1.1", + "resolved": "https://registry.npmjs.org/obsidian-dev-utils/-/obsidian-dev-utils-24.1.1.tgz", + "integrity": "sha512-pHqnS9lnF5GmWWTkVB87/Uqg50Z7u0HzvWoZySuzlhT8hfARDdPqiaD5BTRj2uAv4XV2DAj27cF97OK4UURjDA==", "dev": true, "license": "MIT", "dependencies": { diff --git a/src/GitChangelogPlugin.svelte.ts b/src/GitChangelogPlugin.svelte.ts index 324faf8..dd09370 100644 --- a/src/GitChangelogPlugin.svelte.ts +++ b/src/GitChangelogPlugin.svelte.ts @@ -165,8 +165,12 @@ export class GitChangelogPlugin extends PluginBase { // eslint-disable-next-line @typescript-eslint/require-await public override async onSaveSettings( _newSettings: GitChangelogSettings, - _oldSettings: GitChangelogSettings + _oldSettings: GitChangelogSettings, + skipCheck?: boolean ): Promise { + if (skipCheck) { + return; + } this.debouncedChangelogSettingsChangedCheck?.(_oldSettings, _newSettings); } diff --git a/src/core/FileChangelogManager.ts b/src/core/FileChangelogManager.ts index 12a5634..b0d7df8 100644 --- a/src/core/FileChangelogManager.ts +++ b/src/core/FileChangelogManager.ts @@ -50,7 +50,8 @@ export class FileChangelogManager extends ChangelogManager { await this.plugin.settingsManager.editAndSave( (settings: GitChangelogSettings): void => { settings.fileChangelogInterval = this.getNextInterval(); - } + }, + true ); this.plugin.app.workspace.trigger( 'git-changelog:file-changelog-generation-settings-changed' diff --git a/src/core/VaultChangelogManager.ts b/src/core/VaultChangelogManager.ts index 922a68b..2e977d3 100644 --- a/src/core/VaultChangelogManager.ts +++ b/src/core/VaultChangelogManager.ts @@ -50,7 +50,8 @@ export class VaultChangelogManager extends ChangelogManager await this.plugin.settingsManager.editAndSave( (settings: GitChangelogSettings): void => { settings.vaultChangelogInterval = this.getNextInterval(); - } + }, + true ); this.plugin.app.workspace.trigger( 'git-changelog:vault-changelog-generation-settings-changed' diff --git a/src/settings/ui/CustomLocale.ts b/src/settings/ui/CustomLocale.ts index 0af607d..1266844 100644 --- a/src/settings/ui/CustomLocale.ts +++ b/src/settings/ui/CustomLocale.ts @@ -25,7 +25,7 @@ function getSystemLocale(plugin: GitChangelogPlugin): string { if (validateLocale(systemLocale)) { plugin.detectedLocale = systemLocale; } else { - new Notice( + plugin.displayNotice( "Couldn't detect a valid system locale: Obsidian installer version might be too old.\nFallback to en-US." ); plugin.detectedLocale = 'en-US'; diff --git a/src/settings/ui/CustomTimeZone.ts b/src/settings/ui/CustomTimeZone.ts index b5ee505..fa18498 100644 --- a/src/settings/ui/CustomTimeZone.ts +++ b/src/settings/ui/CustomTimeZone.ts @@ -1,6 +1,5 @@ import type GitChangelogPlugin from 'main.ts'; -import { Notice } from 'obsidian'; import { SettingComponent } from 'settings/components/setting.ts'; import { TimeZoneSuggest } from 'settings/components/suggest.ts'; import { TIME_ZONES_LIST } from 'settings/settings.ts'; @@ -29,7 +28,7 @@ function getSystemTimeZone(plugin: GitChangelogPlugin): string { if (validateCustomTimeZone(systemTimeZone)) { plugin.detectedTimeZone = systemTimeZone; } else { - new Notice( + plugin.displayNotice( "Couldn't detect a valid system time zone: Obsidian installer version might be too old.\nFallback to UTC." ); plugin.detectedTimeZone = 'utc';