From b7d7ca04e12690b5e65259c8806e5e895cdc16aa Mon Sep 17 00:00:00 2001
From: botato <63275405+botatooo@users.noreply.github.com>
Date: Sat, 27 Aug 2022 00:01:23 -0400
Subject: Refractor plugin backend (#111)

* refractor uninstall plugin backend

* refractor plugin installation method

* Change formatting in browser.py

* Manually format main.py

* Manually format utilities.py

* remove inconsistency

* remove unnecessary linebreaks

* lol what

* last minute pythoning

* Fix async missing

* lint

* more refractor

* await forgotten

* fix: menu not disappearing after first click

* lint

* bug: fix double click on uninstall

* depricate request installs

* basic patch notes viewer, lazy-load settings and store, build frontend as esmodule, add lazy-loaded react-markdown, backend changes to accomodate ESModule frontend

* refractor uninstall plugin backend

* Change formatting in browser.py

* Manually format main.py

* Manually format utilities.py

* remove unnecessary linebreaks

* lol what

* last minute pythoning

* Fix async missing

* rebase onto main

* fix error, fix React crash if patch notes are opened before remote version info is loaded

Co-authored-by: TrainDoctor <traindoctor@protonmail.com>
Co-authored-by: AAGaming <aa@mail.catvibers.me>
---
 frontend/src/store.tsx | 47 +++++++++++++----------------------------------
 1 file changed, 13 insertions(+), 34 deletions(-)

(limited to 'frontend/src/store.tsx')

diff --git a/frontend/src/store.tsx b/frontend/src/store.tsx
index 3e9d6823..12c8972d 100644
--- a/frontend/src/store.tsx
+++ b/frontend/src/store.tsx
@@ -42,17 +42,10 @@ export function getLegacyPluginList(): Promise<LegacyStorePlugin[]> {
 }
 
 export async function installFromURL(url: string) {
-  const formData = new FormData();
   const splitURL = url.split('/');
-  formData.append('name', splitURL[splitURL.length - 1].replace('.zip', ''));
-  formData.append('artifact', url);
-  await fetch('http://localhost:1337/browser/install_plugin', {
-    method: 'POST',
-    body: formData,
-    credentials: 'include',
-    headers: {
-      Authentication: window.deckyAuthToken,
-    },
+  await window.DeckyPluginLoader.callServerMethod('install_plugin', {
+    name: splitURL[splitURL.length - 1].replace('.zip', ''),
+    artifact: url,
   });
 }
 
@@ -60,18 +53,11 @@ export function requestLegacyPluginInstall(plugin: LegacyStorePlugin, selectedVe
   showModal(
     <ModalRoot
       onOK={() => {
-        const formData = new FormData();
-        formData.append('name', plugin.artifact);
-        formData.append('artifact', `https://github.com/${plugin.artifact}/archive/refs/tags/${selectedVer}.zip`);
-        formData.append('version', selectedVer);
-        formData.append('hash', plugin.versions[selectedVer]);
-        fetch('http://localhost:1337/browser/install_plugin', {
-          method: 'POST',
-          body: formData,
-          credentials: 'include',
-          headers: {
-            Authentication: window.deckyAuthToken,
-          },
+        window.DeckyPluginLoader.callServerMethod('install_plugin', {
+          name: plugin.artifact,
+          artifact: `https://github.com/${plugin.artifact}/archive/refs/tags/${selectedVer}.zip`,
+          version: selectedVer,
+          hash: plugin.versions[selectedVer],
         });
       }}
       onCancel={() => {
@@ -89,18 +75,11 @@ export function requestLegacyPluginInstall(plugin: LegacyStorePlugin, selectedVe
 }
 
 export async function requestPluginInstall(plugin: string, selectedVer: StorePluginVersion) {
-  const formData = new FormData();
-  formData.append('name', plugin);
-  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,
-    credentials: 'include',
-    headers: {
-      Authentication: window.deckyAuthToken,
-    },
+  await window.DeckyPluginLoader.callServerMethod('install_plugin', {
+    name: plugin,
+    artifact: `https://cdn.tzatzikiweeb.moe/file/steam-deck-homebrew/versions/${selectedVer.hash}.zip`,
+    version: selectedVer.name,
+    hash: selectedVer.hash,
   });
 }
 
-- 
cgit v1.2.3

