From f1ff318a6a62ce0775c5e9654b0564992a5269d7 Mon Sep 17 00:00:00 2001 From: Szedann <65607498+Szedann@users.noreply.github.com> Date: Mon, 21 Jul 2025 12:17:43 +0200 Subject: [PATCH] default package type --- .../frontend/src/hooks/useBrowser.tsx | 7 ++++- .../app/browser/package.$provider.$slug.tsx | 29 +++++++++---------- .../frontend/src/routes/app/browser/route.tsx | 2 +- .../onelauncher/frontend/src/utils/browser.ts | 4 ++- 4 files changed, 24 insertions(+), 18 deletions(-) diff --git a/apps/onelauncher/frontend/src/hooks/useBrowser.tsx b/apps/onelauncher/frontend/src/hooks/useBrowser.tsx index f98628e1..a6dd4276 100644 --- a/apps/onelauncher/frontend/src/hooks/useBrowser.tsx +++ b/apps/onelauncher/frontend/src/hooks/useBrowser.tsx @@ -32,7 +32,12 @@ export function BrowserProvider(props: any) { const [provider, setProvider] = useState(PROVIDERS[0]); const navigate = useNavigate(); const [query, setQuery] = useState({ - filters: null, + filters: { + categories: null, + game_versions: null, + loaders: null, + package_types: ["mod"] + }, query: null, limit: 18 as unknown as bigint, offset: null, diff --git a/apps/onelauncher/frontend/src/routes/app/browser/package.$provider.$slug.tsx b/apps/onelauncher/frontend/src/routes/app/browser/package.$provider.$slug.tsx index 64ad7ce0..7920682a 100644 --- a/apps/onelauncher/frontend/src/routes/app/browser/package.$provider.$slug.tsx +++ b/apps/onelauncher/frontend/src/routes/app/browser/package.$provider.$slug.tsx @@ -37,7 +37,7 @@ function CustomA({ href, children, includeIcon, className, ...rest }: { href: st {...rest} > {children} - {includeIcon && } + {includeIcon && } ); } @@ -77,7 +77,7 @@ function RouteComponent() { Gallery
- + , @@ -96,7 +96,7 @@ function RouteComponent() { {packageData.data?.gallery.map(item => ( -
+
{item.title &&
{item.title}
}
@@ -118,7 +118,7 @@ function RouteComponent() { } function getPackageUrl(pkg: ManagedPackage): string { - switch (pkg.provider){ + switch (pkg.provider) { case 'Modrinth': return `https://modrinth.com/project/${pkg.slug}` case 'Curseforge': return `https://www.curseforge.com/minecraft/${pkg.package_type}s/${pkg.slug}` case 'SkyClient': return `` @@ -175,12 +175,11 @@ function BrowserSidebar({ package: pkg }: { package: ManagedPackage }) { {' '} Page - {(Object.entries(pkg.links) as [keyof typeof pkg.links, typeof pkg.links[keyof typeof pkg.links]][]).filter(a=>a[1]).map(link=> + {(Object.entries(pkg.links) as [keyof typeof pkg.links, typeof pkg.links[keyof typeof pkg.links]][]).filter(a => a[1]).map(link => typeof link[1] == "string" - ? - :
- {(link[1] as PackageDonationUrl[]).map(donationLink=>)} -
+ ? + : (link[1] as PackageDonationUrl[]).map(donationLink => ) + )}
@@ -272,12 +271,12 @@ function InstallButton() { browserContext.cluster ? version ? ( - - Download latest to -
- {browserContext.cluster.name} -
- ) + + Download latest to +
+ {browserContext.cluster.name} +
+ ) : `No matching version found` : 'Select a Cluster' } diff --git a/apps/onelauncher/frontend/src/routes/app/browser/route.tsx b/apps/onelauncher/frontend/src/routes/app/browser/route.tsx index 6fac4ec6..ff44bbc0 100644 --- a/apps/onelauncher/frontend/src/routes/app/browser/route.tsx +++ b/apps/onelauncher/frontend/src/routes/app/browser/route.tsx @@ -107,7 +107,7 @@ const defaultFilters: Filters = { function BrowserCategories() { const context = useBrowserContext(); - const categories = browserCategories.byPackageType('mod', context.provider); + const categories = browserCategories.byPackageType((context.query.filters?.package_types ?? ["mod"])[0], context.provider); function switchCategory(category: string) { const newCategories = context.query.filters?.categories?.includes(category) diff --git a/apps/onelauncher/frontend/src/utils/browser.ts b/apps/onelauncher/frontend/src/utils/browser.ts index b32f8c6f..92cc105b 100644 --- a/apps/onelauncher/frontend/src/utils/browser.ts +++ b/apps/onelauncher/frontend/src/utils/browser.ts @@ -1,3 +1,5 @@ +import type { PackageType, Provider } from "@/bindings.gen"; + export const BROWSER_VIEWS: Array = ['grid', 'list'] as const; export interface CategoryItem { @@ -6,7 +8,7 @@ export interface CategoryItem { } export const browserCategories = { - byPackageType(packageType: 'mod' | string & {}, provider: string): Array { + byPackageType(packageType: PackageType, provider: Provider): Array { switch (packageType) { case 'mod': return this.mod(provider);