Skip to content

Commit 3e5619f

Browse files
refactor(ui): Consolidate UI code
1 parent 23d0c3f commit 3e5619f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+349
-411
lines changed

source/ui/BonfireSettingsUi.ts

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { coalesceArray, isNil } from "@oliversalzburg/js-utils/data/nil.js";
2-
import { redirectErrorsToConsole } from "@oliversalzburg/js-utils/errors/console.js";
32
import type { SupportedLocale } from "../Engine.js";
43
import type { KittenScientists } from "../KittenScientists.js";
54
import { BonfireSettings } from "../settings/BonfireSettings.js";
@@ -38,7 +37,7 @@ export class BonfireSettingsUi extends SettingsPanel<BonfireSettings, SettingTri
3837
this.refreshUi();
3938
options?.onUnCheck?.(isBatchProcess);
4039
},
41-
onRefresh: item => {
40+
onRefresh: () => {
4241
const element = this.settingItem;
4342
element.triggerButton.inactive = !settings.enabled || settings.trigger < 0;
4443
element.triggerButton.ineffective =
@@ -57,16 +56,16 @@ export class BonfireSettingsUi extends SettingsPanel<BonfireSettings, SettingTri
5756
!settings.turnOnSteamworks.enabled &&
5857
!settings.upgradeBuildings.enabled;
5958
},
60-
onRefreshTrigger: item => {
59+
onRefreshTrigger: () => {
6160
const element = this.settingItem;
6261
element.triggerButton.element[0].title = host.engine.i18n("ui.trigger.section", [
6362
settings.trigger < 0
6463
? host.engine.i18n("ui.trigger.section.inactive")
6564
: host.renderPercentage(settings.trigger, locale.selected, true),
6665
]);
6766
},
68-
onSetTrigger: () => {
69-
Dialog.prompt(
67+
onSetTrigger: async () => {
68+
const value = await Dialog.prompt(
7069
host,
7170
host.engine.i18n("ui.trigger.prompt.percentage"),
7271
host.engine.i18n("ui.trigger.section.prompt", [
@@ -77,23 +76,18 @@ export class BonfireSettingsUi extends SettingsPanel<BonfireSettings, SettingTri
7776
]),
7877
settings.trigger !== -1 ? host.renderPercentage(settings.trigger) : "",
7978
host.engine.i18n("ui.trigger.section.promptExplainer"),
80-
)
81-
.then(value => {
82-
if (value === undefined) {
83-
return;
84-
}
79+
);
8580

86-
if (value === "" || value.startsWith("-")) {
87-
settings.trigger = -1;
88-
return;
89-
}
81+
if (value === undefined) {
82+
return;
83+
}
9084

91-
settings.trigger = host.parsePercentage(value);
92-
})
93-
.then(() => {
94-
this.refreshUi();
95-
})
96-
.catch(redirectErrorsToConsole(console));
85+
if (value === "" || value.startsWith("-")) {
86+
settings.trigger = -1;
87+
return;
88+
}
89+
90+
settings.trigger = host.parsePercentage(value);
9791
},
9892
}),
9993
);

source/ui/BuildSectionTools.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,14 @@ import {
99
} from "./components/SettingMaxTriggerListItem.js";
1010

1111
export const BuildSectionTools = {
12-
getBuildOption: <
13-
TOptions extends SettingMaxTriggerListItemOptions = SettingMaxTriggerListItemOptions,
14-
>(
12+
getBuildOption: (
1513
host: KittenScientists,
1614
option: SettingTriggerMax,
1715
locale: SettingOptions<SupportedLocale>,
1816
sectionSetting: SettingTrigger,
1917
label: string,
2018
sectionLabel: string,
21-
options?: Partial<TOptions>,
19+
options?: Partial<SettingMaxTriggerListItemOptions>,
2220
) => {
2321
const onSetMax = () => {
2422
Dialog.prompt(

source/ui/BuildingUpgradeSettingsUi.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export class BuildingUpgradeSettingsUi extends SettingsPanel<BuildingUpgradeSett
3434
this.refreshUi();
3535
options?.onUnCheck?.(isBatchProcess);
3636
},
37-
onRefresh: _item => {
37+
onRefresh: () => {
3838
this.expando.ineffective =
3939
sectionSetting.enabled &&
4040
settings.enabled &&

source/ui/EmbassySettingsUi.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { SettingTriggerListItem } from "./components/SettingTriggerListItem.js";
1414
import { SettingsList } from "./components/SettingsList.js";
1515
import { SettingsPanel } from "./components/SettingsPanel.js";
1616

17-
export class EmbassySettingsUi extends SettingsPanel<EmbassySettings> {
17+
export class EmbassySettingsUi extends SettingsPanel<EmbassySettings, SettingTriggerListItem> {
1818
constructor(
1919
host: KittenScientists,
2020
settings: EmbassySettings,
@@ -37,9 +37,8 @@ export class EmbassySettingsUi extends SettingsPanel<EmbassySettings> {
3737
this.refreshUi();
3838
options?.onUnCheck?.(isBatchProcess);
3939
},
40-
onRefresh: item => {
41-
(item as SettingTriggerListItem).triggerButton.inactive =
42-
!settings.enabled || settings.trigger === -1;
40+
onRefresh: () => {
41+
this.settingItem.triggerButton.inactive = !settings.enabled || settings.trigger === -1;
4342

4443
this.expando.ineffective =
4544
sectionSetting.enabled &&

source/ui/InternalsUi.ts

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import stylesSettingListItem from "./components/SettingListItem.module.css";
1616
import { SettingsList } from "./components/SettingsList.js";
1717
import { SettingsPanel } from "./components/SettingsPanel.js";
1818
import { TextButton } from "./components/TextButton.js";
19-
import type { UiComponent } from "./components/UiComponent.js";
2019

2120
export class InternalsUi extends SettingsPanel<EngineSettings> {
2221
constructor(
@@ -68,7 +67,7 @@ export class InternalsUi extends SettingsPanel<EngineSettings> {
6867
})
6968
.catch(redirectErrorsToConsole(console));
7069
},
71-
onRefresh: (subject: UiComponent) => {
70+
onRefresh: () => {
7271
(subject as TextButton).element.text(
7372
host.engine.i18n("ui.internals.interval", [settings.interval]),
7473
);

source/ui/MissionSettingsUi.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export class MissionSettingsUi extends SettingsPanel<MissionSettings> {
3737
this.refreshUi();
3838
options?.onUnCheck?.(isBatchProcess);
3939
},
40-
onRefresh: _item => {
40+
onRefresh: () => {
4141
this.expando.ineffective =
4242
sectionSetting.enabled &&
4343
settings.enabled &&

source/ui/PolicySettingsUi.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export class PolicySettingsUi extends SettingsPanel<PolicySettings> {
3535
this.refreshUi();
3636
options?.onUnCheck?.(isBatchProcess);
3737
},
38-
onRefresh: _item => {
38+
onRefresh: () => {
3939
this.expando.ineffective =
4040
sectionSetting.enabled &&
4141
settings.enabled &&

source/ui/ReligionSettingsUi.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { SettingTriggerListItem } from "./components/SettingTriggerListItem.js";
1818
import { SettingsList } from "./components/SettingsList.js";
1919
import { SettingsPanel } from "./components/SettingsPanel.js";
2020

21-
export class ReligionSettingsUi extends SettingsPanel<ReligionSettings> {
21+
export class ReligionSettingsUi extends SettingsPanel<ReligionSettings, SettingTriggerListItem> {
2222
private readonly _unicornBuildings: Map<
2323
ZigguratUpgrade | "unicornPasture",
2424
SettingMaxTriggerListItem
@@ -29,7 +29,7 @@ export class ReligionSettingsUi extends SettingsPanel<ReligionSettings> {
2929
host: KittenScientists,
3030
settings: ReligionSettings,
3131
locale: SettingOptions<SupportedLocale>,
32-
options?: Partial<PanelOptions & SettingListItemOptions>,
32+
options?: PanelOptions & SettingListItemOptions,
3333
) {
3434
const label = host.engine.i18n("ui.faith");
3535
super(
@@ -46,9 +46,8 @@ export class ReligionSettingsUi extends SettingsPanel<ReligionSettings> {
4646
this.refreshUi();
4747
options?.onUnCheck?.(isBatchProcess);
4848
},
49-
onRefresh: item => {
50-
(item as SettingTriggerListItem).triggerButton.inactive =
51-
!settings.enabled || settings.trigger === -1;
49+
onRefresh: () => {
50+
this.settingItem.triggerButton.inactive = !settings.enabled || settings.trigger === -1;
5251
},
5352
onRefreshTrigger: item => {
5453
item.triggerButton.element[0].title = host.engine.i18n("ui.trigger.section", [
@@ -244,8 +243,8 @@ export class ReligionSettingsUi extends SettingsPanel<ReligionSettings> {
244243
onUnCheck: () => {
245244
host.engine.imessage("status.sub.disable", [label]);
246245
},
247-
onRefresh: element => {
248-
(element as SettingTriggerListItem).triggerButton.inactive =
246+
onRefresh: () => {
247+
this.settingItem.triggerButton.inactive =
249248
!this.setting[item].enabled || this.setting[item].trigger === -1;
250249
},
251250
onSetTrigger: () => {

source/ui/ScienceSettingsUi.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ export class ScienceSettingsUi extends SettingsPanel<ScienceSettings> {
3838
this.refreshUi();
3939
options?.onUnCheck?.(isBatchProcess);
4040
},
41-
onRefresh: _item => {
41+
onRefresh: () => {
4242
this.expando.ineffective =
4343
settings.enabled &&
4444
!settings.policies.enabled &&

source/ui/SpaceSettingsUi.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { SettingTriggerListItem } from "./components/SettingTriggerListItem.js";
1414
import { SettingsList } from "./components/SettingsList.js";
1515
import { SettingsPanel } from "./components/SettingsPanel.js";
1616

17-
export class SpaceSettingsUi extends SettingsPanel<SpaceSettings> {
17+
export class SpaceSettingsUi extends SettingsPanel<SpaceSettings, SettingTriggerListItem> {
1818
private readonly _missionsUi: MissionSettingsUi;
1919

2020
constructor(
@@ -38,9 +38,8 @@ export class SpaceSettingsUi extends SettingsPanel<SpaceSettings> {
3838
this.refreshUi();
3939
options?.onUnCheck?.(isBatchProcess);
4040
},
41-
onRefresh: item => {
42-
(item as SettingTriggerListItem).triggerButton.inactive =
43-
!settings.enabled || settings.trigger === -1;
41+
onRefresh: () => {
42+
this.settingItem.triggerButton.inactive = !settings.enabled || settings.trigger === -1;
4443
},
4544
onRefreshTrigger: item => {
4645
item.triggerButton.element[0].title = host.engine.i18n("ui.trigger.section", [

0 commit comments

Comments
 (0)