58 lines
1.4 KiB
JavaScript
58 lines
1.4 KiB
JavaScript
import { __ID__ } from "../consts.mjs";
|
|
import { Logger } from "../utils/Logger.mjs";
|
|
|
|
const key = `startingSidebarTab`;
|
|
|
|
export function startingSidebarTab() {
|
|
|
|
// #region Registration
|
|
Logger.log(`Registering setting: ${key}`);
|
|
game.settings.register(__ID__, key, {
|
|
name: `OFT.setting.${key}.name`,
|
|
hint: `OFT.setting.${key}.hint`,
|
|
type: new foundry.data.fields.StringField({
|
|
blank: true,
|
|
nullable: false,
|
|
required: true,
|
|
choices: () => {
|
|
const tabs = Object.entries(CONFIG.ui.sidebar.TABS);
|
|
|
|
const tabChoices = {
|
|
"": `OFT.setting.${key}.choices.blank`,
|
|
};
|
|
for (const [id, data] of tabs) {
|
|
let { documentName, gmOnly, tooltip: name } = data;
|
|
if (gmOnly && !game.user.isGM) { continue };
|
|
|
|
if (documentName) {
|
|
name ??= foundry.utils.getDocumentClass(documentName).metadata.labelPlural;
|
|
};
|
|
|
|
tabChoices[id] = name;
|
|
};
|
|
|
|
return tabChoices;
|
|
},
|
|
}),
|
|
config: true,
|
|
requiresReload: false,
|
|
});
|
|
// #endregion Registration
|
|
|
|
// #region Implementation
|
|
Hooks.once(`ready`, () => {
|
|
const defaultTab = game.settings.get(__ID__, key);
|
|
if (defaultTab === ``) { return };
|
|
|
|
if (!(defaultTab in CONFIG.ui.sidebar.TABS)) {
|
|
Logger.error(`Failed to find starting tab with ID "${defaultTab}", skipping`);
|
|
return;
|
|
};
|
|
|
|
if (defaultTab) {
|
|
Logger.debug(`Changing tab to:`, defaultTab);
|
|
ui.sidebar.changeTab(defaultTab, `primary`);
|
|
};
|
|
});
|
|
// #endregion Implementation
|
|
};
|