import { useState, // useEffect } from "react"; import { PanelSection, PanelSectionRow, ButtonItem, // Dropdown, // DropdownOption } from "@decky/ui"; import { definePlugin, callable } from "@decky/api"; import { FaShip } from "react-icons/fa"; // "run_install_fgmod" corresponds to the Python method run_install_fgmod() const runInstallFGMod = callable< [], { status: string; message?: string; output?: string } >("run_install_fgmod"); // "get_installed_games" corresponds to the Python method get_installed_games() // const fetchInstalledGames = callable<[], string>("get_installed_games"); function FGModInstallerSection() { const [installing, setInstalling] = useState(false); const [installResult, setInstallResult] = useState<{ status: string; output?: string; message?: string; } | null>(null); const handleInstallClick = async () => { setInstalling(true); const result = await runInstallFGMod(); setInstalling(false); setInstallResult(result); }; return ( {installing ? "Installing..." : "Install FG Mod"} {installResult && (
Status:{" "} {installResult.status === "success" ? "Success" : "Error"}
{installResult.output && ( <> Output:
{installResult.output}
)} {installResult.message && ( <> Error: {installResult.message} )}
)}
); } // function GameSelectorSection() { // const [games, setGames] = useState([]); // const [selectedGame, setSelectedGame] = useState(null); // useEffect(() => { // const loadGames = async () => { // const result = await fetchInstalledGames(); // const gameList = JSON.parse(result) as { appid: string; name: string }[]; // setGames(gameList.map((g) => ({ data: g.appid, label: g.name }))); // }; // loadGames(); // }, []); // return ( // // // setSelectedGame(option)} // strDefaultLabel="Select a game" // /> // // {selectedGame && ( // //
You selected: {selectedGame.label}
//
// )} //
// ); // } function MainContent() { return ( <> {/* */} ); } // One default export, one plugin export default definePlugin(() => ({ name: "Framegen Plugin", titleView:
Framegen Plugin
, content: , icon: , onDismount() { console.log("Framegen Plugin unmounted"); }, }));