From dcbc788aa20cd45c25fc0a925d97c2679713d997 Mon Sep 17 00:00:00 2001 From: Spicy_Marinara Date: Sun, 19 Oct 2025 20:33:22 +0200 Subject: [PATCH] Fix preset existence check to use array includes - openai_setting_names from /api/settings/get is an array, not an object - Use .includes() instead of 'in' operator to check for preset - Prevents duplicate preset imports on every page refresh - Preset is now only imported once on first extension load --- index.js | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/index.js b/index.js index bdace65..eeef6fd 100644 --- a/index.js +++ b/index.js @@ -444,24 +444,19 @@ async function initUI() { async function ensureTrackerPresetExists() { try { const presetName = 'RPG Companion Trackers'; - - // Check if preset already exists by fetching the preset list from the API - const presetsResponse = await fetch('/api/settings/get', { + + // Check if preset already exists by fetching settings + const checkResponse = await fetch('/api/settings/get', { method: 'POST', - headers: getRequestHeaders(), + headers: getRequestHeaders() }); - - if (presetsResponse.ok) { - const settings = await presetsResponse.json(); - const openaiSettings = settings?.openai; - - // Check if the preset exists in openai_setting_names - if (openaiSettings && openaiSettings.openai_setting_names) { - const presetExists = Object.keys(openaiSettings.openai_setting_names).includes(presetName); - if (presetExists) { - // console.log(`[RPG Companion] Preset "${presetName}" already exists`); - return; - } + + if (checkResponse.ok) { + const settings = await checkResponse.json(); + // openai_setting_names is an array of preset names + if (settings.openai_setting_names && settings.openai_setting_names.includes(presetName)) { + console.log(`[RPG Companion] Preset "${presetName}" already exists`); + return; } }