mirror of
https://github.com/ReaJason/MemShellParty.git
synced 2026-09-23 07:21:53 +08:00
feat: support random param and default config (#50)
This commit is contained in:
+45
-4
@@ -1,7 +1,44 @@
|
||||
import { createBrowserRouter } from "react-router-dom";
|
||||
import { env } from "@/config";
|
||||
import RootLayout from "@/components/layouts/root-layout";
|
||||
import { env } from "@/config";
|
||||
import IndexPage from "@/pages";
|
||||
import { FormSchema } from "@/types/schema";
|
||||
import { createBrowserRouter } from "react-router-dom";
|
||||
|
||||
// Function to parse URL parameters into form default values
|
||||
const parseUrlParams = (searchParams: URLSearchParams): Partial<FormSchema> => {
|
||||
const result: Partial<FormSchema> = {};
|
||||
|
||||
// Helper function to parse boolean values
|
||||
const parseBoolean = (value: string | null): boolean | undefined => {
|
||||
if (value === null) return undefined;
|
||||
return value.toLowerCase() === "true";
|
||||
};
|
||||
|
||||
// Map URL parameters to form fields
|
||||
if (searchParams.has("server")) result.server = searchParams.get("server") ?? undefined;
|
||||
if (searchParams.has("targetJdkVersion")) result.targetJdkVersion = searchParams.get("targetJdkVersion") ?? undefined;
|
||||
if (searchParams.has("debug")) result.debug = parseBoolean(searchParams.get("debug"));
|
||||
if (searchParams.has("bypassJavaModule"))
|
||||
result.bypassJavaModule = parseBoolean(searchParams.get("bypassJavaModule"));
|
||||
if (searchParams.has("shellClassName")) result.shellClassName = searchParams.get("shellClassName") ?? undefined;
|
||||
if (searchParams.has("shellTool")) result.shellTool = searchParams.get("shellTool") ?? undefined;
|
||||
if (searchParams.has("shellType")) result.shellType = searchParams.get("shellType") ?? undefined;
|
||||
if (searchParams.has("urlPattern")) result.urlPattern = searchParams.get("urlPattern") ?? undefined;
|
||||
if (searchParams.has("godzillaPass")) result.godzillaPass = searchParams.get("godzillaPass") ?? undefined;
|
||||
if (searchParams.has("godzillaKey")) result.godzillaKey = searchParams.get("godzillaKey") ?? undefined;
|
||||
if (searchParams.has("behinderPass")) result.behinderPass = searchParams.get("behinderPass") ?? undefined;
|
||||
if (searchParams.has("antSwordPass")) result.antSwordPass = searchParams.get("antSwordPass") ?? undefined;
|
||||
if (searchParams.has("commandParamName")) result.commandParamName = searchParams.get("commandParamName") ?? undefined;
|
||||
if (searchParams.has("headerName")) result.headerName = searchParams.get("headerName") ?? undefined;
|
||||
if (searchParams.has("headerValue")) result.headerValue = searchParams.get("headerValue") ?? undefined;
|
||||
if (searchParams.has("injectorClassName"))
|
||||
result.injectorClassName = searchParams.get("injectorClassName") ?? undefined;
|
||||
if (searchParams.has("packingMethod")) result.packingMethod = searchParams.get("packingMethod") ?? undefined;
|
||||
if (searchParams.has("shrink")) result.shrink = parseBoolean(searchParams.get("shrink"));
|
||||
if (searchParams.has("shellClassBase64")) result.shellClassBase64 = searchParams.get("shellClassBase64") ?? undefined;
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
export const router = createBrowserRouter(
|
||||
[
|
||||
@@ -12,11 +49,15 @@ export const router = createBrowserRouter(
|
||||
{
|
||||
index: true,
|
||||
element: <IndexPage />,
|
||||
loader: ({ request }) => {
|
||||
const url = new URL(request.url);
|
||||
return parseUrlParams(url.searchParams);
|
||||
},
|
||||
},
|
||||
],
|
||||
},
|
||||
],
|
||||
{
|
||||
basename: env.BASE_PATH,
|
||||
}
|
||||
);
|
||||
},
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user