@@ -51,6 +51,15 @@ import {
5151import type { MemShellFormSchema } from "@/types/schema" ;
5252import { Spinner } from "../ui/spinner" ;
5353
54+ const JDKVersion = [
55+ { name : "Java6" , value : "50" } ,
56+ { name : "Java8" , value : "52" } ,
57+ { name : "Java9" , value : "53" } ,
58+ { name : "Java11" , value : "55" } ,
59+ { name : "Java17" , value : "61" } ,
60+ { name : "Java21" , value : "65" } ,
61+ ] ;
62+
5463const shellToolIcons : Record < ShellToolType , JSX . Element > = {
5564 [ ShellToolType . Behinder ] : < ShieldOffIcon className = "h-4 w-4" /> ,
5665 [ ShellToolType . Godzilla ] : < AxeIcon className = "h-4 w-4" /> ,
@@ -62,13 +71,6 @@ const shellToolIcons: Record<ShellToolType, JSX.Element> = {
6271 [ ShellToolType . Custom ] : < ZapIcon className = "h-4 w-4" /> ,
6372} ;
6473
65- const defaultServerVersionOptions = [
66- {
67- name : "Unknown" ,
68- value : "Unknown" ,
69- } ,
70- ] ;
71-
7274export default function MainConfigCard ( {
7375 mainConfig,
7476 form,
@@ -85,9 +87,6 @@ export default function MainConfigCard({
8587 } > ( ) ;
8688 const [ shellTools , setShellTools ] = useState < ShellToolType [ ] > ( [ ] ) ;
8789 const [ shellTypes , setShellTypes ] = useState < string [ ] > ( [ ] ) ;
88- const [ serverVersionOptions , setServerVersionOptions ] = useState (
89- defaultServerVersionOptions ,
90- ) ;
9190
9291 const shellTool = useWatch ( {
9392 control : form . control ,
@@ -132,24 +131,6 @@ export default function MainConfigCard({
132131 form . setValue ( "targetJdkVersion" , "50" ) ;
133132 }
134133
135- if ( value === "TongWeb" ) {
136- setServerVersionOptions ( [
137- ...defaultServerVersionOptions ,
138- { name : "6" , value : "6" } ,
139- { name : "7" , value : "7" } ,
140- { name : "8" , value : "8" } ,
141- ] ) ;
142- } else if ( value === "Jetty" ) {
143- setServerVersionOptions ( [
144- ...defaultServerVersionOptions ,
145- { name : "6" , value : "6" } ,
146- { name : "7+" , value : "7+" } ,
147- { name : "12" , value : "12" } ,
148- ] ) ;
149- } else {
150- setServerVersionOptions ( defaultServerVersionOptions ) ;
151- }
152-
153134 form . resetField ( "serverVersion" ) ;
154135 form . resetField ( "byPassJavaModule" ) ;
155136 form . resetField ( "urlPattern" ) ;
@@ -315,30 +296,37 @@ export default function MainConfigCard({
315296 />
316297 < Controller
317298 control = { form . control }
318- name = "serverVersion "
299+ name = "targetJdkVersion "
319300 render = { ( { field, fieldState } ) => (
320301 < Field
321302 orientation = "vertical"
322303 data-invalid = { fieldState . invalid }
323304 >
324305 < FieldContent >
325- < FieldLabel htmlFor = "serverVersion " >
326- { t ( "common:serverVersion " ) }
306+ < FieldLabel htmlFor = "targetJdkVersion " >
307+ { t ( "common:targetJdkVersion " ) }
327308 </ FieldLabel >
328309 < Select
329- onValueChange = { field . onChange }
310+ onValueChange = { ( v ) => {
311+ if ( Number . parseInt ( v ?? "0" , 10 ) >= 53 ) {
312+ form . setValue ( "byPassJavaModule" , true ) ;
313+ } else {
314+ form . setValue ( "byPassJavaModule" , false ) ;
315+ }
316+ field . onChange ( v ) ;
317+ } }
330318 value = { field . value }
331319 >
332320 < SelectTrigger
333- id = "serverVersion "
321+ id = "targetJdkVersion "
334322 aria-invalid = { fieldState . invalid }
335323 >
336324 < SelectValue
337325 data-placeholder = { t ( "common:placeholders.select" ) }
338326 />
339327 </ SelectTrigger >
340328 < SelectContent >
341- { serverVersionOptions . map ( ( v ) => (
329+ { JDKVersion . map ( ( v ) => (
342330 < SelectItem key = { v . value } value = { v . value } >
343331 { v . name }
344332 </ SelectItem >
0 commit comments