mirror of
https://github.com/ReaJason/MemShellParty.git
synced 2026-09-22 07:00:43 +08:00
refactor: simplify config api
This commit is contained in:
@@ -25,7 +25,7 @@ import {
|
||||
import { Switch } from "@/components/ui/switch";
|
||||
import { Tabs } from "@/components/ui/tabs";
|
||||
import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip";
|
||||
import { type MainConfig, type ServerConfig, ShellToolType } from "@/types/memshell";
|
||||
import { type MainConfig, ShellToolType } from "@/types/memshell";
|
||||
|
||||
import { Spinner } from "../ui/spinner";
|
||||
import { JREVersionFormField } from "./jreversion-field";
|
||||
@@ -35,11 +35,9 @@ import { ProxyTabContent } from "./tabs/proxy-tab";
|
||||
export default function MainConfigCard({
|
||||
mainConfig,
|
||||
form,
|
||||
servers,
|
||||
}: Readonly<{
|
||||
mainConfig: MainConfig | undefined;
|
||||
form: UseFormReturn<MemShellFormSchema>;
|
||||
servers?: ServerConfig;
|
||||
}>) {
|
||||
const { t } = useTranslation(["common", "memshell"]);
|
||||
|
||||
@@ -60,7 +58,7 @@ export default function MainConfigCard({
|
||||
return mainConfig[server];
|
||||
}, [mainConfig, server]);
|
||||
|
||||
const serverOptions = useMemo(() => Object.keys(servers ?? {}), [servers]);
|
||||
const serverOptions = useMemo(() => Object.keys(mainConfig ?? {}), [mainConfig]);
|
||||
|
||||
const shellTools = useMemo(() => {
|
||||
if (!serverToolMap) {
|
||||
@@ -71,11 +69,11 @@ export default function MainConfigCard({
|
||||
}, [serverToolMap]);
|
||||
|
||||
const customShellTypes = useMemo(() => {
|
||||
if (!server) {
|
||||
if (!serverToolMap) {
|
||||
return [];
|
||||
}
|
||||
return servers?.[server] ?? [];
|
||||
}, [server, servers]);
|
||||
return Array.from(new Set(Object.values(serverToolMap).flat()));
|
||||
}, [serverToolMap]);
|
||||
|
||||
const shellTypes = useMemo(() => {
|
||||
if (!serverToolMap || !server) {
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
import type { ServerConfig } from "@/types/memshell";
|
||||
import type { ProbeShellFormSchema } from "@/types/schema";
|
||||
|
||||
import { InfoIcon, ServerIcon } from "lucide-react";
|
||||
@@ -62,10 +61,10 @@ const DEFAULT_FORM_VALUES = {
|
||||
|
||||
interface MainConfigCardProps {
|
||||
readonly form: UseFormReturn<ProbeShellFormSchema>;
|
||||
readonly servers?: ServerConfig;
|
||||
readonly responseBodyServers?: string[];
|
||||
}
|
||||
|
||||
export default function MainConfigCard({ form, servers }: MainConfigCardProps) {
|
||||
export default function MainConfigCard({ form, responseBodyServers }: MainConfigCardProps) {
|
||||
const { t } = useTranslation(["common", "probeshell"]);
|
||||
const watchedProbeMethod = form.watch("probeMethod");
|
||||
const watchedProbeContent = form.watch("probeContent");
|
||||
@@ -155,13 +154,11 @@ export default function MainConfigCard({ form, servers }: MainConfigCardProps) {
|
||||
<SelectValue data-placeholder={t("placeholders.select")} />
|
||||
</SelectTrigger>
|
||||
<SelectContent>
|
||||
{Object.keys(servers ?? {})
|
||||
.filter((s) => s !== "SpringWebFlux" && s !== "XXLJOB")
|
||||
.map((server: string) => (
|
||||
<SelectItem key={server} value={server}>
|
||||
{server}
|
||||
</SelectItem>
|
||||
))}
|
||||
{responseBodyServers?.map((server) => (
|
||||
<SelectItem key={server} value={server}>
|
||||
{server}
|
||||
</SelectItem>
|
||||
))}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
{fieldState.error && <FieldError errors={[fieldState.error]} />}
|
||||
|
||||
Reference in New Issue
Block a user