diff options
Diffstat (limited to 'frontend/src/components/store/Store.tsx')
| -rw-r--r-- | frontend/src/components/store/Store.tsx | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/frontend/src/components/store/Store.tsx b/frontend/src/components/store/Store.tsx new file mode 100644 index 00000000..ebb2bb8e --- /dev/null +++ b/frontend/src/components/store/Store.tsx @@ -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; |
