@@ -285,10 +285,20 @@ function StepFields({
285285 onPatternCreated ?: ( p : RegexPattern ) => void
286286 onChange : ( config : Record < string , unknown > ) => void
287287} ) {
288+ const { t } = useTranslation ( )
288289 const set = ( key : string , val : unknown ) => onChange ( { ...config , [ key ] : val } )
289290 const str = ( key : string ) => ( typeof config [ key ] === 'string' ? ( config [ key ] as string ) : '' )
290291 const list = ( key : string ) =>
291292 Array . isArray ( config [ key ] ) ? ( config [ key ] as unknown [ ] ) . map ( ( x ) => String ( x ) ) : [ ]
293+ const obj = ( key : string ) : Record < string , unknown > =>
294+ config [ key ] && typeof config [ key ] === 'object' && ! Array . isArray ( config [ key ] )
295+ ? ( config [ key ] as Record < string , unknown > )
296+ : { }
297+ const objStr = ( key : string , sub : string ) => {
298+ const v = obj ( key ) [ sub ]
299+ return typeof v === 'string' ? v : ''
300+ }
301+ const setObj = ( key : string , sub : string , val : string ) => set ( key , { ...obj ( key ) , [ sub ] : val } )
292302
293303 switch ( kind ) {
294304 case 'grok' :
@@ -335,7 +345,13 @@ function StepFields({
335345 return (
336346 < >
337347 < TextField label = "function" required value = { str ( 'function' ) } readOnly = { readOnly } onChange = { ( v ) => set ( 'function' , v ) } />
338- < ListField label = "params" values = { list ( 'params' ) } readOnly = { readOnly } onChange = { ( v ) => set ( 'params' , v ) } />
348+ < div className = "space-y-1.5 rounded-md border border-border/60 bg-background/30 p-2" >
349+ < div className = "font-mono text-[11px] text-foreground/70" > { t ( 'parsingFilters.visual.parameters' ) } </ div >
350+ < div className = "grid grid-cols-2 gap-3" >
351+ < TextField label = { t ( 'parsingFilters.visual.paramsKey' ) } required value = { objStr ( 'params' , 'key' ) } readOnly = { readOnly } onChange = { ( v ) => setObj ( 'params' , 'key' , v ) } />
352+ < TextField label = { t ( 'parsingFilters.visual.paramsValue' ) } required value = { objStr ( 'params' , 'value' ) } readOnly = { readOnly } onChange = { ( v ) => setObj ( 'params' , 'value' , v ) } />
353+ </ div >
354+ </ div >
339355 < WhereField value = { str ( 'where' ) } readOnly = { readOnly } onChange = { ( v ) => set ( 'where' , v ) } />
340356 </ >
341357 )
@@ -399,7 +415,7 @@ function WhereField({
399415 )
400416}
401417
402- /** Editable list of strings (rename.from, add.params ). */
418+ /** Editable list of strings (rename.from). */
403419function ListField ( {
404420 label,
405421 values,
0 commit comments