Skip to content

Commit 168fa9d

Browse files
committed
chore: Added casting to settings function
1 parent d9625a0 commit 168fa9d

File tree

1 file changed

+19
-13
lines changed

1 file changed

+19
-13
lines changed

js/src/forum/index.tsx

+19-13
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,18 @@ import { NestedStringArray } from '@askvortsov/rich-icu-message-formatter';
77

88
/**
99
* Returns a setting added by the extension
10-
*
11-
* @param {string} slug
12-
* @returns {any}
1310
*/
14-
function setting(slug: string): any {
15-
return app.forum.attribute(`maicol07-sso.${slug}`);
11+
function setting(slug: string, cast?: typeof Boolean | typeof Number): any | boolean | number {
12+
let setting = app.forum.attribute(`maicol07-sso.${slug}`);
13+
14+
if (cast !== undefined) {
15+
if (cast === Boolean && isNaN(setting as number)) {
16+
setting = Number(setting);
17+
}
18+
return cast(setting);
19+
}
20+
21+
return setting;
1622
}
1723

1824
/**
@@ -23,24 +29,24 @@ function getItems(): Record<string, { url: string; itemName: string; removeItem:
2329
login: {
2430
url: setting('login_url'),
2531
itemName: 'logIn',
26-
removeItem: setting('remove_login_btn') === '1',
32+
removeItem: setting('remove_login_btn', Boolean),
2733
text: app.translator.trans('core.forum.header.log_in_link'),
2834
},
2935
signup: {
3036
url: setting('signup_url'),
3137
itemName: 'signUp',
32-
removeItem: setting('remove_signup_btn') === '1',
38+
removeItem: setting('remove_signup_btn', Boolean),
3339
text: app.translator.trans('core.forum.header.sign_up_link'),
3440
},
3541
};
3642
}
3743

3844
app.initializers.add('maicol07-sso', () => {
3945
window.addEventListener('load', () => {
40-
if (!setting('provider_mode')) {
46+
if (!setting('provider_mode', Boolean)) {
4147
override(LogInModal.prototype, 'oncreate', () => {
4248
const items = getItems();
43-
window.top.location.href = items.login.url;
49+
window.location.href = items.login.url;
4450
throw new Error('Stop execution');
4551
});
4652

@@ -67,28 +73,28 @@ app.initializers.add('maicol07-sso', () => {
6773
});
6874

6975
extend(SettingsPage.prototype, 'accountItems', (items) => {
70-
if (!setting('login_url')) {
76+
if (!setting('login_url', Boolean)) {
7177
return; // Do not add account items if no login url is set.
7278
}
7379

7480
// Remove change email and password buttons
7581
items.remove('changeEmail');
7682
items.remove('changePassword');
7783

78-
if (!setting('manage_account_url')) {
84+
if (!setting('manage_account_url', Boolean)) {
7985
return;
8086
}
8187

8288
items.add(
8389
'manageAccount',
84-
<a class="Button" href={setting('manage_account_url')} target={setting('manage_account_btn_open_in_new_tab') === '1' ? '_blank' : ''}>
90+
<a class="Button" href={setting('manage_account_url')} target={setting('manage_account_btn_open_in_new_tab', Boolean) ? '_blank' : ''}>
8591
{app.translator.trans('maicol07-sso.forum.manage_account_btn')}
8692
</a>
8793
);
8894
});
8995

9096
extend(SettingsPage.prototype, 'settingsItems', (items) => {
91-
if (setting('manage_account_url')) {
97+
if (setting('manage_account_url', Boolean)) {
9298
return; // Manage account link is added above
9399
}
94100

0 commit comments

Comments
 (0)