diff options
| author | AAGaming <aa@mail.catvibers.me> | 2022-06-29 12:17:25 -0400 |
|---|---|---|
| committer | AAGaming <aa@mail.catvibers.me> | 2022-06-29 12:17:25 -0400 |
| commit | 79e8af8be66a27835611dec062bf85cac7b09468 (patch) | |
| tree | d4691c8269ab31a2507d4887026ee84537724c43 | |
| parent | 18d444e8fc04da818250b36212540065693d3fa2 (diff) | |
| download | decky-loader-79e8af8be66a27835611dec062bf85cac7b09468.tar.gz decky-loader-79e8af8be66a27835611dec062bf85cac7b09468.zip | |
update store for new format, awaiting cors to test
| -rw-r--r-- | frontend/src/components/store/PluginCard.tsx | 17 | ||||
| -rw-r--r-- | frontend/src/components/store/Store.tsx | 22 |
2 files changed, 21 insertions, 18 deletions
diff --git a/frontend/src/components/store/PluginCard.tsx b/frontend/src/components/store/PluginCard.tsx index 28989a88..20ffead6 100644 --- a/frontend/src/components/store/PluginCard.tsx +++ b/frontend/src/components/store/PluginCard.tsx @@ -10,7 +10,7 @@ import { } from 'decky-frontend-lib'; import { FC, useRef, useState } from 'react'; -import { StorePlugin, requestPluginInstall } from './Store'; +import { StorePlugin, StorePluginVersion, requestPluginInstall } from './Store'; interface PluginCardProps { plugin: StorePlugin; @@ -62,10 +62,9 @@ const PluginCard: FC<PluginCardProps> = ({ plugin }) => { <a style={{ fontSize: '18pt', padding: '10px' }} className={classNames(staticClasses.Text)} - onClick={() => Router.NavigateToExternalWeb('https://github.com/' + plugin.artifact)} + // onClick={() => Router.NavigateToExternalWeb('https://github.com/' + plugin.artifact)} > - <span style={{ color: 'grey' }}>{plugin.artifact.split('/')[0]}/</span> - {plugin.artifact.split('/')[1]} + {plugin.name} </a> </div> <div @@ -80,7 +79,7 @@ const PluginCard: FC<PluginCardProps> = ({ plugin }) => { width: 'auto', height: '160px', }} - src={`https://cdn.tzatzikiweeb.moe/file/steam-deck-homebrew/artifact_images/${plugin.artifact.replace( + src={`https://cdn.tzatzikiweeb.moe/file/steam-deck-homebrew/artifact_images/${plugin.name.replace( '/', '_', )}.png`} @@ -133,7 +132,7 @@ const PluginCard: FC<PluginCardProps> = ({ plugin }) => { > <DialogButton ref={buttonRef} - onClick={() => requestPluginInstall(plugin, Object.keys(plugin.versions)[selectedOption])} + onClick={() => requestPluginInstall(plugin, plugin.versions[selectedOption])} > Install </DialogButton> @@ -145,9 +144,9 @@ const PluginCard: FC<PluginCardProps> = ({ plugin }) => { > <Dropdown rgOptions={ - Object.keys(plugin.versions).map((v, k) => ({ - data: k, - label: v, + plugin.versions.map((version: StorePluginVersion, index) => ({ + data: index, + label: version.name, })) as SingleDropdownOption[] } strDefaultLabel={'Select a version'} diff --git a/frontend/src/components/store/Store.tsx b/frontend/src/components/store/Store.tsx index 0e99a3c2..4890cb9d 100644 --- a/frontend/src/components/store/Store.tsx +++ b/frontend/src/components/store/Store.tsx @@ -3,11 +3,15 @@ import { FC, useEffect, useState } from 'react'; import PluginCard from './PluginCard'; +export interface StorePluginVersion { + name: string; + hash: string; +} + export interface StorePlugin { - artifact: string; - versions: { - [version: string]: string; - }; + id: number; + name: string; + versions: StorePluginVersion[]; author: string; description: string; tags: string[]; @@ -22,11 +26,11 @@ export async function installFromURL(url: string) { }); } -export async function requestPluginInstall(plugin: StorePlugin, selectedVer: string) { +export async function requestPluginInstall(plugin: StorePlugin, selectedVer: StorePluginVersion) { const formData = new FormData(); - formData.append('artifact', `https://github.com/${plugin.artifact}/archive/refs/tags/${selectedVer}.zip`); - formData.append('version', selectedVer); - formData.append('hash', plugin.versions[selectedVer]); + formData.append('artifact', `https://cdn.tzatzikiweeb.moe/file/steam-deck-homebrew/versions/${selectedVer.hash}.zip`); + formData.append('version', selectedVer.name); + formData.append('hash', selectedVer.hash); await fetch('http://localhost:1337/browser/install_plugin', { method: 'POST', body: formData, @@ -38,7 +42,7 @@ const StorePage: FC<{}> = () => { useEffect(() => { (async () => { - const res = await fetch('https://beta.deckbrew.xyz/get_plugins', { method: 'GET' }).then((r) => r.json()); + const res = await fetch('https://beta.deckbrew.xyz/plugins', { method: 'GET' }).then((r) => r.json()); console.log(res); setData(res); })(); |
