summaryrefslogtreecommitdiff
path: root/src/index.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'src/index.tsx')
-rwxr-xr-xsrc/index.tsx21
1 files changed, 9 insertions, 12 deletions
diff --git a/src/index.tsx b/src/index.tsx
index 74af918..ed3327f 100755
--- a/src/index.tsx
+++ b/src/index.tsx
@@ -1,12 +1,13 @@
import {useEffect, useState} from "react";
import {FaClipboardList} from "react-icons/fa";
-import {definePlugin} from "decky-frontend-lib";
import remarkHtml from "remark-html"
import remarkParse from "remark-parse"
import remarkGfm from "remark-gfm"
import {unified} from "unified"
import {patchPartnerEventStore} from "./PartnerEventStorePatch";
import {staticClasses} from "@decky/ui";
+import {definePlugin} from "@decky/api"
+import {fetchReleases} from "./FetchReleases";
function Content() {
const [changelogHtml, setChangelogHtml] = useState<string | null>(null);
@@ -14,25 +15,20 @@ function Content() {
const [isRefreshing, setIsRefreshing] = useState<boolean>(false);
const fetchChangelog = async (signal?: AbortSignal) => {
- const url = "https://api.github.com/repos/ublue-os/bazzite/releases/latest";
try {
- const response = await fetch(url, {
- headers: {
- Accept: "application/vnd.github.v3+json",
- },
- signal,
- });
+ const generator = fetchReleases(signal);
+ const iterator = await generator.next();
- if (!response.ok) {
- throw new Error(`Failed to fetch: ${response.statusText}`);
+ if (!iterator || iterator.done) {
+ setError("An unknown error occurred while fetching the changelog.");
+ return;
}
- const data = await response.json();
const html = await unified()
.use(remarkParse)
.use(remarkGfm)
.use(remarkHtml)
- .process(data.body)
+ .process(iterator.value.body);
setChangelogHtml(html.value as string);
setError(null);
@@ -181,6 +177,7 @@ function Content() {
);
}
+// noinspection JSUnusedGlobalSymbols
export default definePlugin(() => {
const patches = patchPartnerEventStore();