this repo has no description

Merge pull request #175 from moonlight-mod/update-all

kasimir 5d5dc84c babe128a

Changed files
+26 -1
packages
core-extensions
src
moonbase
webpackModules
ui
extensions
+1
packages/core-extensions/src/moonbase/style.css
···
display: flex;
flex-direction: row;
gap: 8px;
+
align-items: center;
}
.moonbase-update-divider {
+10
packages/core-extensions/src/moonbase/webpackModules/stores.ts
···
this.emitChange();
}
+
async updateAllExtensions() {
+
for (const id of Object.keys(this.updates)) {
+
try {
+
await this.installExtension(parseInt(id));
+
} catch (e) {
+
logger.error("Error bulk updating extension", id, e);
+
}
+
}
+
}
+
async installExtension(uniqueId: number) {
const ext = this.getExtension(uniqueId);
if (!("download" in ext.manifest)) {
+15 -1
packages/core-extensions/src/moonbase/webpackModules/ui/extensions/index.tsx
···
import HelpMessage from "../HelpMessage";
const SearchBar: any = Object.values(spacepack.findByCode("hideSearchIcon")[0].exports)[0];
-
const { FormDivider, CircleInformationIcon, XSmallIcon } = Components;
+
const { FormDivider, CircleInformationIcon, XSmallIcon, Button } = Components;
const PanelButton = spacepack.findByCode("Masks.PANEL_BUTTON")[0].exports.Z;
export default function ExtensionsPage() {
···
});
const [query, setQuery] = React.useState("");
+
const [hitUpdateAll, setHitUpdateAll] = React.useState(false);
const filterState = React.useState(defaultFilter);
···
className="moonbase-extension-update-section"
>
<div className="moonbase-help-message-buttons">
+
<Button
+
look={Button.Looks.OUTLINED}
+
color={Button.Colors.PRIMARY}
+
size={Button.Sizes.TINY}
+
disabled={hitUpdateAll}
+
onClick={() => {
+
setHitUpdateAll(true);
+
MoonbaseSettingsStore.updateAllExtensions();
+
MoonbaseSettingsStore.showOnlyUpdateable = false;
+
}}
+
>
+
Update all
+
</Button>
<PanelButton
icon={XSmallIcon}
onClick={() => {