From df23d750cd5e0144941a05e8c1875e53b5f9e7cb Mon Sep 17 00:00:00 2001 From: xXJSONDeruloXx Date: Fri, 10 Jan 2025 19:45:59 -0500 Subject: friendship with iframe ended, GH API is now my best friend --- src/index.tsx | 86 +++++++++++++++++++++++++++++++++++++++++++++++------------ 1 file changed, 69 insertions(+), 17 deletions(-) diff --git a/src/index.tsx b/src/index.tsx index 1ed365d..c2c1f86 100755 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,35 +1,87 @@ import { definePlugin } from "decky-frontend-lib"; -import React from "react"; -import { FaGlobe } from "react-icons/fa"; // Example icon +import React, { useEffect, useState } from "react"; +import { FaClipboardList } from "react-icons/fa"; function Content() { + const [changelog, setChangelog] = useState(null); + const [error, setError] = useState(null); + + useEffect(() => { + const url = + "https://api.github.com/repos/ublue-os/bazzite/releases/tags/41.20250106.2"; + const controller = new AbortController(); + const signal = controller.signal; + + const fetchChangelog = async () => { + try { + const response = await fetch(url, { + headers: { + Accept: "application/vnd.github.v3+json", + }, + signal, + }); + + if (!response.ok) { + throw new Error(`Failed to fetch: ${response.statusText}`); + } + + const data = await response.json(); + setChangelog(data.body); + } catch (err) { + if (err instanceof DOMException && err.name === "AbortError") return; + const errorMessage = + err instanceof Error + ? err.message + : "An unknown error occurred while fetching the changelog."; + setError(errorMessage); + } + }; + + fetchChangelog(); + + return () => { + controller.abort(); // Cleanup on unmount + }; + }, []); + return (
- +

Bazzite Release Notes

+ {error ? ( +

+ {error} +

+ ) : changelog ? ( +
+          {changelog}
+        
+ ) : ( +

Loading...

+ )}
); } export default definePlugin(() => { return { - name: "WebPage Viewer", - title:
WebPage Viewer
, // Title shown in Decky - icon: , // Icon for the plugin + name: "Bazzite Changelog Viewer", + title:
Bazzite Changelog
, + icon: , content: , onDismount() {}, }; -- cgit v1.2.3