From 3c56ee6e7469bed310496e4bd9034bce00bf4035 Mon Sep 17 00:00:00 2001 From: "Kritagya Bhattarai (CalfMoon)" Date: Sun, 29 Mar 2026 21:20:56 +0545 Subject: [PATCH] feat: don't allow addition of duplicates in manual addition --- src/settings.ts | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/src/settings.ts b/src/settings.ts index 2e1d03b..63d717b 100644 --- a/src/settings.ts +++ b/src/settings.ts @@ -1,6 +1,7 @@ import { App, ButtonComponent, + Notice, PluginSettingTab, SearchComponent, Setting, @@ -103,19 +104,12 @@ export default class NodeFactorSettingTab extends PluginSettingTab { search .setPlaceholder("Enter File Name") .onChange(async (value) => { - // fileName = value; if (value != "") submitButton.setDisabled(false); }); }) .addSlider((slider) => { selectedWeight = slider; - slider - .setLimits(0, 100, 5) - .setDynamicTooltip() - .setValue(0) - .onChange(async (value) => { - // fileNodeSize = value; - }); + slider.setLimits(0, 100, 5).setDynamicTooltip().setValue(0); }) .addButton((button) => { submitButton = button; @@ -124,15 +118,31 @@ export default class NodeFactorSettingTab extends PluginSettingTab { .setButtonText("Add") .setTooltip("Click to add") .onClick(async () => { - let enteredFileData: FileData = { + const enteredFileData: FileData = { id: selectedFile.getValue(), weight: selectedWeight.getValue(), }; - this.plugin.settings.manual.push(enteredFileData); - selectedWeight.setValue(0); selectedFile.setValue(""); + + const fileExists = this.plugin.settings.manual.find( + (foundFile) => { + foundFile.id == enteredFileData.id; + }, + ); + + if (!fileExists) { + new Notice(`That file's size has already been entered, + remove it first to change weight.`); + return; + } + + this.plugin.settings.manual.push(enteredFileData); await this.plugin.saveSettings(); + new Notice("Manual Size added"); + + // Rerender display + this.display(); this.plugin.recalculateSize(); }); });