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() {
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;
}
}