this repo has no description
1import settings from "@moonlight-mod/wp/settings_settings";
2import React from "@moonlight-mod/wp/common_react";
3import spacepack from "@moonlight-mod/wp/spacepack_spacepack";
4import { Moonbase, pages } from "@moonlight-mod/wp/moonbase_ui";
5
6import { MoonbaseSettingsStore } from "@moonlight-mod/wp/moonbase_stores";
7import { Text } from "@moonlight-mod/wp/common_components";
8
9function addSection(name: string, element: React.FunctionComponent) {
10 settings.addSection(name, name, element, null, -2, {
11 stores: [MoonbaseSettingsStore],
12 element: () => {
13 // Require it here because lazy loading SUX
14 const SettingsNotice =
15 spacepack.findByCode("onSaveButtonColor")[0].exports.default;
16 return (
17 <SettingsNotice
18 submitting={MoonbaseSettingsStore.submitting}
19 onReset={() => {
20 MoonbaseSettingsStore.reset();
21 }}
22 onSave={() => {
23 MoonbaseSettingsStore.writeConfig();
24 }}
25 />
26 );
27 }
28 });
29}
30
31if (moonlight.getConfigOption<boolean>("moonbase", "sections")) {
32 const Margins = spacepack.findByCode("marginCenterHorz:")[0].exports;
33
34 settings.addHeader("Moonbase", -2);
35 for (const page of Object.values(pages)) {
36 addSection(page.name, () => (
37 <>
38 <Text
39 className={Margins.marginBottom20}
40 variant="heading-lg/semibold"
41 tag="h2"
42 >
43 Extensions
44 </Text>
45 <page.element />
46 </>
47 ));
48 }
49} else {
50 addSection("Moonbase", Moonbase);
51}