From 4d30339c34782a6e3d313804fa393c95ad38c4b2 Mon Sep 17 00:00:00 2001 From: TrainDoctor Date: Sat, 29 Oct 2022 15:03:12 -0700 Subject: Add StoreSelect component --- frontend/src/store.tsx | 48 ++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 6 deletions(-) (limited to 'frontend/src/store.tsx') diff --git a/frontend/src/store.tsx b/frontend/src/store.tsx index cc0e4cf0..9b1c5d2e 100644 --- a/frontend/src/store.tsx +++ b/frontend/src/store.tsx @@ -1,4 +1,11 @@ import { Plugin } from './plugin'; +import { getSetting, setSetting } from './utils/settings'; + +export enum Store { + Default, + Testing, + Custom, +} export interface StorePluginVersion { name: string; @@ -20,12 +27,41 @@ export type PluginUpdateMapping = Map; export async function getPluginList(): Promise { let version = await window.DeckyPluginLoader.updateVersion(); - return fetch('https://plugins.deckbrew.xyz/plugins', { - method: 'GET', - headers: { - 'X-Decky-Version': version.current, - }, - }).then((r) => r.json()); + let store = await getSetting('store', Store.Default); + let customURL = await getSetting('store-url', 'https://plugins.deckbrew.xyz/plugins'); + let storeURL; + if (!store) { + console.log('Could not get a default store, using Default.'); + await setSetting('store-url', Store.Default); + return fetch('https://plugins.deckbrew.xyz/plugins', { + method: 'GET', + headers: { + 'X-Decky-Version': version.current, + }, + }).then((r) => r.json()); + } else { + switch (+store) { + case Store.Default: + storeURL = 'https://plugins.deckbrew.xyz/plugins'; + break; + case Store.Testing: + storeURL = 'https://testing.deckbrew.xyz/plugins'; + break; + case Store.Custom: + storeURL = customURL; + break; + default: + console.error('Somehow you ended up without a standard URL, using the default URL.'); + storeURL = 'https://plugins.deckbrew.xyz/plugins'; + break; + } + return fetch(storeURL, { + method: 'GET', + headers: { + 'X-Decky-Version': version.current, + }, + }).then((r) => r.json()); + } } export async function installFromURL(url: string) { -- cgit v1.2.3