import { definePlugin } from "decky-frontend-lib"; import React, { useEffect, useState } from "react"; import { FaClipboardList } from "react-icons/fa"; import { marked } from "marked"; import DOMPurify from "dompurify"; 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 ? (
) : (

Loading...

)}
); } export default definePlugin(() => { return { name: "Bazzite Changelog Viewer", title:
Bazzite Changelog
, icon: , content: , onDismount() {}, }; });