Files
CookieMonster/src/Disp/MenuSections/Settings/SettingsPage.js
2021-07-11 10:21:16 +02:00

59 lines
2.5 KiB
JavaScript

import { ConfigGroups, ConfigGroupsNotification } from '../../../Data/Sectionheaders.ts';
import settings from '../../../Data/settings';
import { FavouriteSettings } from '../../VariablesAndData';
import CreatePrefHeader from './CreateHeader';
import CreatePrefOption from './CreateOption';
/**
* This function adds the options/settings of CookieMonster to the options page
* It is called by CM.Disp.AddMenu
* @param {object} title On object that includes the title of the menu
*/
export default function AddMenuPref(title) {
const frag = document.createDocumentFragment();
frag.appendChild(title);
Object.keys(ConfigGroups).forEach((group) => {
if (group === 'Favourite') {
if (
FavouriteSettings.length !== 0 &&
Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.settings.FavouriteSettings > 0
) {
frag.appendChild(CreatePrefHeader(group, ConfigGroups[group])); // (group, display-name of group)
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers[group])
for (let index = 0; index < FavouriteSettings.length; index++) {
frag.appendChild(CreatePrefOption(FavouriteSettings[index]));
}
}
} else {
frag.appendChild(CreatePrefHeader(group, ConfigGroups[group])); // (group, display-name of group)
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers[group]) {
// 0 is show, 1 is collapsed
// Make sub-sections of Notification section
if (group === 'Notification') {
Object.keys(ConfigGroupsNotification).forEach((subGroup) => {
const subGroupObject = CreatePrefHeader(subGroup, ConfigGroupsNotification[subGroup]); // (group, display-name of group)
subGroupObject.style.fontSize = '15px';
subGroupObject.style.opacity = '0.5';
frag.appendChild(subGroupObject);
if (Game.mods.cookieMonsterFramework.saveData.cookieMonsterMod.headers[subGroup]) {
Object.keys(settings).forEach((option) => {
if (settings[option].group === subGroup) frag.appendChild(CreatePrefOption(option));
});
}
});
} else {
Object.keys(settings).forEach((option) => {
if (settings[option].group === group) frag.appendChild(CreatePrefOption(option));
});
}
}
}
});
l('menu').childNodes[2].insertBefore(
frag,
l('menu').childNodes[2].childNodes[l('menu').childNodes[2].childNodes.length - 1],
);
}