mirror of
https://github.com/SteamDeckHomebrew/decky-loader.git
synced 2026-07-11 11:12:00 +00:00
Refactor plugin store and add sorting by downloads and release date (#547)
* untested first commit * fix types & names * comment out built in sorting for now * rerun search when sort changes * fix ts complaints * use prettier * stop switch-case fall through * move spinner * use locale instead of hardcoded string * fix typo * add sorting by downloads & try using the data field in the dropdown for data * fix typing error * fix asc/desc in dropdown * fix asc/desc again. asc = smaller one go first aaaaa * I don't think i know what ascending means maybe * use props instead of children, like a normal component
This commit is contained in:
+23
-3
@@ -7,6 +7,17 @@ export enum Store {
|
||||
Custom,
|
||||
}
|
||||
|
||||
export enum SortOptions {
|
||||
name = 'name',
|
||||
date = 'date',
|
||||
downloads = 'downloads',
|
||||
}
|
||||
|
||||
export enum SortDirections {
|
||||
ascending = 'asc',
|
||||
descending = 'desc',
|
||||
}
|
||||
|
||||
export interface StorePluginVersion {
|
||||
name: string;
|
||||
hash: string;
|
||||
@@ -36,10 +47,19 @@ export async function getStore(): Promise<Store> {
|
||||
return await getSetting<Store>('store', Store.Default);
|
||||
}
|
||||
|
||||
export async function getPluginList(): Promise<StorePlugin[]> {
|
||||
let version = await DeckyPluginLoader.updateVersion();
|
||||
export async function getPluginList(
|
||||
sort_by: SortOptions | null = null,
|
||||
sort_direction: SortDirections | null = null,
|
||||
): Promise<StorePlugin[]> {
|
||||
let version = await window.DeckyPluginLoader.updateVersion();
|
||||
let store = await getSetting<Store | null>('store', null);
|
||||
let customURL = await getSetting<string>('store-url', 'https://plugins.deckbrew.xyz/plugins');
|
||||
|
||||
let query: URLSearchParams | string = new URLSearchParams();
|
||||
sort_by && query.set('sort_by', sort_by);
|
||||
sort_direction && query.set('sort_direction', sort_direction);
|
||||
query = '?' + String(query);
|
||||
|
||||
let storeURL;
|
||||
if (store === null) {
|
||||
console.log('Could not get store, using Default.');
|
||||
@@ -82,7 +102,7 @@ export async function getPluginList(): Promise<StorePlugin[]> {
|
||||
storeURL = 'https://plugins.deckbrew.xyz/plugins';
|
||||
break;
|
||||
}
|
||||
return fetch(storeURL, {
|
||||
return fetch(storeURL + query, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'X-Decky-Version': version.current,
|
||||
|
||||
Reference in New Issue
Block a user