summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAAGaming <aa@mail.catvibers.me>2022-06-29 12:17:25 -0400
committerAAGaming <aa@mail.catvibers.me>2022-06-29 12:17:25 -0400
commit79e8af8be66a27835611dec062bf85cac7b09468 (patch)
treed4691c8269ab31a2507d4887026ee84537724c43
parent18d444e8fc04da818250b36212540065693d3fa2 (diff)
downloaddecky-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.tsx17
-rw-r--r--frontend/src/components/store/Store.tsx22
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);
})();