···
import React from "@moonlight-mod/wp/react";
import { UpdateState } from "../../types";
import HelpMessage from "./HelpMessage";
7
+
import { MoonlightBranch } from "@moonlight-mod/types";
8
+
import MarkupUtils from "@moonlight-mod/wp/discord/modules/markup/MarkupUtils";
9
+
import spacepack from "@moonlight-mod/wp/spacepack_spacepack";
10
+
import Flex from "@moonlight-mod/wp/discord/uikit/Flex";
8
-
const { ThemeDarkIcon, Button } = Components;
24
+
const MarkupClasses = spacepack.findByCode("markup:", "inlineFormat:")[0].exports;
const logger = moonlight.getLogger("moonbase/ui/update");
···
[UpdateState.Failed]: "Failed to update moonlight. Please use the installer instead."
35
+
function MoonlightChangelog({
43
+
transitionState: number | null;
44
+
onClose: () => void;
47
+
<ModalRoot transitionState={transitionState} size={ModalSize.DYNAMIC}>
49
+
{/* @ts-expect-error TODO: mappings */}
50
+
<Flex.Child grow={1} shrink={1}>
51
+
<Heading variant="heading-lg/semibold">moonlight</Heading>
52
+
<Text variant="text-xs/normal">{version}</Text>
55
+
{/* @ts-expect-error ^^^^ */}
56
+
<Flex.Child grow={0}>
57
+
<ModalCloseButton onClick={onClose} />
62
+
<Text variant="text-md/normal" className={MarkupClasses.markup} style={{ padding: "1rem" }}>
63
+
{MarkupUtils.parse(changelog, true, {
export default function Update() {
const [state, setState] = React.useState(UpdateState.Ready);
const newVersion = useStateFromStores([MoonbaseSettingsStore], () => MoonbaseSettingsStore.newVersion);
···
<HelpMessage text={strings[state]} className="moonbase-update-section" icon={ThemeDarkIcon}>
<div className="moonbase-help-message-buttons">
83
+
{moonlight.branch === MoonlightBranch.STABLE && (
85
+
look={Button.Looks.OUTLINED}
86
+
color={Button.Colors.CUSTOM}
87
+
size={Button.Sizes.TINY}
89
+
fetch(`https://raw.githubusercontent.com/moonlight-mod/moonlight/refs/tags/${newVersion}/CHANGELOG.md`)
90
+
.then((r) => r.text())
91
+
.then((changelog) =>
92
+
// @ts-expect-error TODO: mappings
93
+
openModal((modalProps: { transitionState: number | null; onClose: () => void }) => {
94
+
return <MoonlightChangelog {...modalProps} changelog={changelog} version={newVersion} />;
{state === UpdateState.Installed && (
look={Button.Looks.OUTLINED}