Implement React-based plugin store (#81)

Co-authored-by: TrainDoctor <11465594+TrainDoctor@users.noreply.github.com>
Co-authored-by: WerWolv <werwolv98@gmail.com>
This commit is contained in:
AAGaming
2022-06-17 18:43:53 -04:00
committed by GitHub
parent a95bf94d87
commit 99b4b939bd
15 changed files with 2178 additions and 3915 deletions
+55
View File
@@ -0,0 +1,55 @@
import { SteamSpinner } from 'decky-frontend-lib';
import { FC, useEffect, useState } from 'react';
import PluginCard from './PluginCard';
export interface StorePlugin {
artifact: string;
versions: {
[version: string]: string;
};
author: string;
description: string;
tags: string[];
}
const StorePage: FC<{}> = () => {
const [data, setData] = useState<StorePlugin[] | null>(null);
useEffect(() => {
(async () => {
const res = await fetch('https://beta.deckbrew.xyz/get_plugins', { method: 'GET' }).then((r) => r.json());
console.log(res);
setData(res);
})();
}, []);
return (
<div
style={{
marginTop: '40px',
height: 'calc( 100% - 40px )',
overflowY: 'scroll',
}}
>
<div
style={{
display: 'flex',
flexWrap: 'nowrap',
flexDirection: 'column',
height: '100%',
}}
>
{data === null ? (
<div style={{ height: '100%' }}>
<SteamSpinner />
</div>
) : (
data.map((plugin: StorePlugin) => <PluginCard plugin={plugin} />)
)}
</div>
</div>
);
};
export default StorePage;