Skip to content

Commit

Permalink
Merge pull request #14 from moonlight-mod/eva/great-sectionification
Browse files Browse the repository at this point in the history
The Great Sectionification
  • Loading branch information
NotNite authored Dec 8, 2023
2 parents d030cc1 + d3ce6b6 commit 02476e8
Show file tree
Hide file tree
Showing 4 changed files with 52 additions and 96 deletions.
47 changes: 27 additions & 20 deletions packages/core-extensions/src/moonbase/index.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { ExtensionWebExports } from "@moonlight-mod/types";
import ui from "./ui";
import configPage from "./ui/config";
import extensionsPage from "./ui/extensions";

import { CircleXIconSVG, DownloadIconSVG, TrashIconSVG } from "./types";

export const webpackModules: ExtensionWebExports["webpackModules"] = {
Expand Down Expand Up @@ -32,25 +34,30 @@ export const webpackModules: ExtensionWebExports["webpackModules"] = {
const { MoonbaseSettingsStore } =
require("moonbase_stores") as typeof import("./webpackModules/stores");

settings.addSection("Moonbase", "Moonbase", ui(require), null, -2, {
stores: [MoonbaseSettingsStore],
element: () => {
// Require it here because lazy loading SUX
const SettingsNotice =
spacepack.findByCode("onSaveButtonColor")[0].exports.default;
return (
<SettingsNotice
submitting={MoonbaseSettingsStore.submitting}
onReset={() => {
MoonbaseSettingsStore.reset();
}}
onSave={() => {
MoonbaseSettingsStore.writeConfig();
}}
/>
);
}
});
const addSection = (name: string, element: React.FunctionComponent) => {
settings.addSection(name, name, element, null, -2, {
stores: [MoonbaseSettingsStore],
element: () => {
// Require it here because lazy loading SUX
const SettingsNotice =
spacepack.findByCode("onSaveButtonColor")[0].exports.default;
return (
<SettingsNotice
submitting={MoonbaseSettingsStore.submitting}
onReset={() => {
MoonbaseSettingsStore.reset();
}}
onSave={() => {
MoonbaseSettingsStore.writeConfig();
}}
/>
);
}
});
};
settings.addHeader("moonlight", -2);
addSection("Extensions", extensionsPage(require));
addSection("Config", configPage(require));
}
}
};
15 changes: 11 additions & 4 deletions packages/core-extensions/src/moonbase/ui/config/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ export default (require: WebpackRequireType) => {
className={RemoveButtonClasses.removeButton}
onClick={onClick}
>
<CircleXIcon width={16} height={16} />
<CircleXIcon width={24} height={24} />
</Clickable>
)}
</Tooltip>
Expand All @@ -55,7 +55,12 @@ export default (require: WebpackRequireType) => {
}) {
const items = MoonbaseSettingsStore.getConfigOption(config) ?? [];
return (
<Flex direction={Flex.Direction.VERTICAL}>
<Flex
style={{
gap: "20px"
}}
direction={Flex.Direction.VERTICAL}
>
{items.map((val, i) => (
<div
key={i}
Expand All @@ -68,7 +73,7 @@ export default (require: WebpackRequireType) => {
}}
>
<TextInput
size={TextInput.Sizes.MINI}
size={TextInput.Sizes.DEFAULT}
value={val}
onChange={(newVal: string) => {
items[i] = newVal;
Expand All @@ -88,7 +93,9 @@ export default (require: WebpackRequireType) => {
look={Button.Looks.FILLED}
color={Button.Colors.GREEN}
size={Button.Sizes.SMALL}
className={Margins.marginTop8}
style={{
marginTop: "10px"
}}
onClick={() => {
items.push("");
MoonbaseSettingsStore.setConfigOption(config, items);
Expand Down
15 changes: 14 additions & 1 deletion packages/core-extensions/src/moonbase/ui/extensions/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ export default (require: WebpackRequireType) => {
const Margins = spacepack.findByCode("marginCenterHorz:")[0].exports;
const SearchBar = spacepack.findByCode("Messages.SEARCH", "hideSearchIcon")[0]
.exports.default;
const { Text } = require("common_components");

return function ExtensionsPage() {
const { extensions } = Flux.useStateFromStoresObject(
Expand All @@ -35,7 +36,8 @@ export default (require: WebpackRequireType) => {
const [query, setQuery] = React.useState("");
const [filter, setFilter] = React.useState({ ...defaultFilter });
const [selectedTags, setSelectedTags] = React.useState(new Set<string>());

const TitleBarClasses = spacepack.findByCode("iconWrapper:", "children:")[0]
.exports;
const sorted = Object.values(extensions).sort((a, b) => {
const aName = a.manifest.meta?.name ?? a.id;
const bName = b.manifest.meta?.name ?? b.id;
Expand Down Expand Up @@ -67,6 +69,17 @@ export default (require: WebpackRequireType) => {

return (
<>
<div
className={`${TitleBarClasses.children} ${Margins.marginBottom20}`}
>
<Text
className={TitleBarClasses.titleWrapper}
variant="heading-lg/semibold"
tag="h2"
>
Extensions
</Text>
</div>
<SearchBar
size={SearchBar.Sizes.MEDIUM}
query={query}
Expand Down
71 changes: 0 additions & 71 deletions packages/core-extensions/src/moonbase/ui/index.tsx

This file was deleted.

0 comments on commit 02476e8

Please sign in to comment.