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
This commit is contained in:
Spicy_Marinara
2025-10-19 20:33:22 +02:00
parent 4f6d2deeb0
commit dcbc788aa2
+11 -16
View File
@@ -444,24 +444,19 @@ async function initUI() {
async function ensureTrackerPresetExists() { async function ensureTrackerPresetExists() {
try { try {
const presetName = 'RPG Companion Trackers'; const presetName = 'RPG Companion Trackers';
// Check if preset already exists by fetching the preset list from the API // Check if preset already exists by fetching settings
const presetsResponse = await fetch('/api/settings/get', { const checkResponse = await fetch('/api/settings/get', {
method: 'POST', method: 'POST',
headers: getRequestHeaders(), headers: getRequestHeaders()
}); });
if (presetsResponse.ok) { if (checkResponse.ok) {
const settings = await presetsResponse.json(); const settings = await checkResponse.json();
const openaiSettings = settings?.openai; // openai_setting_names is an array of preset names
if (settings.openai_setting_names && settings.openai_setting_names.includes(presetName)) {
// Check if the preset exists in openai_setting_names console.log(`[RPG Companion] Preset "${presetName}" already exists`);
if (openaiSettings && openaiSettings.openai_setting_names) { return;
const presetExists = Object.keys(openaiSettings.openai_setting_names).includes(presetName);
if (presetExists) {
// console.log(`[RPG Companion] Preset "${presetName}" already exists`);
return;
}
} }
} }