2022-04-23 00:42:11 +02:00
|
|
|
import {
|
|
|
|
|
Button,
|
|
|
|
|
definePlugin,
|
2022-05-13 23:18:19 +02:00
|
|
|
Menu,
|
|
|
|
|
MenuItem,
|
2022-04-23 00:42:11 +02:00
|
|
|
ServerAPI,
|
2022-05-13 23:18:19 +02:00
|
|
|
showModal,
|
2022-05-25 21:34:31 +02:00
|
|
|
staticClasses,
|
2022-04-23 00:42:11 +02:00
|
|
|
} from "decky-frontend-lib";
|
2022-05-20 18:13:31 -04:00
|
|
|
import * as React from "react"; // JSX needs this, since React < 17.0.0 doesn't support the JSX runtime.
|
2022-05-25 21:34:31 +02:00
|
|
|
import { VFC } from "react";
|
2022-04-23 00:42:11 +02:00
|
|
|
import { FaShip } from "react-icons/fa";
|
|
|
|
|
|
2022-05-25 21:34:31 +02:00
|
|
|
import logo from "../assets/logo.png";
|
|
|
|
|
|
2022-05-13 23:18:19 +02:00
|
|
|
// interface AddMethodArgs {
|
|
|
|
|
// left: number;
|
|
|
|
|
// right: number;
|
|
|
|
|
// }
|
2022-04-23 00:42:11 +02:00
|
|
|
|
2022-05-13 23:18:19 +02:00
|
|
|
const Content: VFC<{ serverAPI: ServerAPI }> = ({}) => {
|
|
|
|
|
// const [result, setResult] = useState<number | undefined>();
|
2022-04-23 00:42:11 +02:00
|
|
|
|
2022-05-13 23:18:19 +02:00
|
|
|
// const onClick = async () => {
|
|
|
|
|
// const result = await serverAPI.callPluginMethod<AddMethodArgs, number>(
|
|
|
|
|
// "add",
|
|
|
|
|
// {
|
|
|
|
|
// left: 2,
|
|
|
|
|
// right: 2,
|
|
|
|
|
// }
|
|
|
|
|
// );
|
|
|
|
|
// if (result.success) {
|
|
|
|
|
// setResult(result.result);
|
|
|
|
|
// }
|
|
|
|
|
// };
|
2022-04-23 00:42:11 +02:00
|
|
|
|
|
|
|
|
return (
|
2022-05-13 23:18:19 +02:00
|
|
|
<div>
|
|
|
|
|
<Button
|
2022-05-25 21:34:31 +02:00
|
|
|
layout="below"
|
2022-05-13 23:18:19 +02:00
|
|
|
onClick={(e) =>
|
|
|
|
|
showModal(
|
|
|
|
|
<Menu label="Menu" cancelText="CAAAANCEL" onCancel={() => {}}>
|
|
|
|
|
<MenuItem onSelected={() => {}}>Item #1</MenuItem>
|
|
|
|
|
<MenuItem onSelected={() => {}}>Item #2</MenuItem>
|
|
|
|
|
<MenuItem onSelected={() => {}}>Item #3</MenuItem>
|
|
|
|
|
</Menu>,
|
|
|
|
|
e.currentTarget ?? window
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
>
|
|
|
|
|
Server says yolo
|
|
|
|
|
</Button>
|
2022-05-25 21:34:31 +02:00
|
|
|
<img src={logo} />
|
2022-05-13 23:18:19 +02:00
|
|
|
</div>
|
2022-04-23 00:42:11 +02:00
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
2022-05-20 18:13:31 -04:00
|
|
|
export default definePlugin((serverApi: ServerAPI) => {
|
2022-04-23 00:42:11 +02:00
|
|
|
return {
|
2022-05-13 23:18:19 +02:00
|
|
|
title: <div className={staticClasses.Title}>Example Plugin</div>,
|
2022-04-23 00:42:11 +02:00
|
|
|
content: <Content serverAPI={serverApi} />,
|
|
|
|
|
icon: <FaShip />,
|
|
|
|
|
};
|
|
|
|
|
});
|