@@ -25,6 +25,7 @@ export type GroupEditorValues = {
2525 match_regex : string ;
2626 mode : GroupMode ;
2727 first_token_time_out : number ;
28+ session_keep_time : number ;
2829 members : SelectedMember [ ] ;
2930} ;
3031
@@ -232,6 +233,7 @@ export function GroupEditor({
232233 const [ matchRegex , setMatchRegex ] = useState ( initial ?. match_regex ?? '' ) ;
233234 const [ mode , setMode ] = useState < GroupMode > ( ( initial ?. mode ?? 1 ) as GroupMode ) ;
234235 const [ firstTokenTimeOut , setFirstTokenTimeOut ] = useState < number > ( initial ?. first_token_time_out ?? 0 ) ;
236+ const [ sessionKeepTime , setSessionKeepTime ] = useState < number > ( initial ?. session_keep_time ?? 0 ) ;
235237 const [ selectedMembers , setSelectedMembers ] = useState < SelectedMember [ ] > ( initial ?. members ?? [ ] ) ;
236238 const [ removingIds , setRemovingIds ] = useState < Set < string > > ( new Set ( ) ) ;
237239
@@ -314,6 +316,7 @@ export function GroupEditor({
314316 match_regex : regexKey ,
315317 mode,
316318 first_token_time_out : firstTokenTimeOut ,
319+ session_keep_time : sessionKeepTime ,
317320 members : selectedMembers ,
318321 } ) ;
319322 } ;
@@ -323,7 +326,7 @@ export function GroupEditor({
323326 < form onSubmit = { handleSubmit } className = "flex flex-col h-full min-h-0 " >
324327 < div className = "flex-1 min-h-0 overflow-hidden pr-1" >
325328 < FieldGroup className = "gap-4 flex flex-col min-h-0 h-full" >
326- < div className = "grid grid-cols-1 md:grid-cols-3 gap-4" >
329+ < div className = "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-4" >
327330 < Field >
328331 < FieldLabel htmlFor = "group-name" > { t ( 'form.name' ) } </ FieldLabel >
329332 < Input
@@ -382,6 +385,40 @@ export function GroupEditor({
382385 className = "rounded-xl"
383386 />
384387 </ Field >
388+
389+ < Field >
390+ < FieldLabel htmlFor = "group-session-keep-time" >
391+ { t ( 'form.sessionKeepTime' ) }
392+ < TooltipProvider >
393+ < Tooltip >
394+ < TooltipTrigger asChild >
395+ < HelpCircle className = "size-4 text-muted-foreground cursor-help" />
396+ </ TooltipTrigger >
397+ < TooltipContent >
398+ { t ( 'form.sessionKeepTimeHint' ) }
399+ </ TooltipContent >
400+ </ Tooltip >
401+ </ TooltipProvider >
402+ </ FieldLabel >
403+ < Input
404+ id = "group-session-keep-time"
405+ type = "number"
406+ inputMode = "numeric"
407+ min = { 0 }
408+ step = { 1 }
409+ value = { String ( sessionKeepTime ) }
410+ onChange = { ( e ) => {
411+ const raw = e . target . value ;
412+ if ( raw . trim ( ) === '' ) {
413+ setSessionKeepTime ( 0 ) ;
414+ return ;
415+ }
416+ const n = Number . parseInt ( raw , 10 ) ;
417+ setSessionKeepTime ( Number . isFinite ( n ) && n > 0 ? n : 0 ) ;
418+ } }
419+ className = "rounded-xl"
420+ />
421+ </ Field >
385422 </ div >
386423
387424 { /* Mode */ }
0 commit comments