@@ -89,9 +89,7 @@ export const DynamicParameter: FC<DynamicParameterProps> = ({
89
89
/>
90
90
) }
91
91
</ div >
92
- { parameter . diagnostics . length > 0 && (
93
- < ParameterDiagnostics diagnostics = { parameter . diagnostics } />
94
- ) }
92
+ < ParameterDiagnostics diagnostics = { parameter . diagnostics } />
95
93
</ div >
96
94
) ;
97
95
} ;
@@ -112,6 +110,9 @@ const ParameterLabel: FC<ParameterLabelProps> = ({
112
110
const displayName = parameter . display_name
113
111
? parameter . display_name
114
112
: parameter . name ;
113
+ const hasRequiredDiagnostic = parameter . diagnostics ?. find (
114
+ ( d ) => d . extra ?. code === "required" ,
115
+ ) ;
115
116
116
117
return (
117
118
< div className = "flex items-start gap-2" >
@@ -186,6 +187,22 @@ const ParameterLabel: FC<ParameterLabelProps> = ({
186
187
</ Tooltip >
187
188
</ TooltipProvider >
188
189
) }
190
+ { hasRequiredDiagnostic && (
191
+ < TooltipProvider delayDuration = { 100 } >
192
+ < Tooltip >
193
+ < TooltipTrigger asChild >
194
+ < span className = "flex items-center" >
195
+ < Badge size = "sm" variant = "destructive" border = "none" >
196
+ Required
197
+ </ Badge >
198
+ </ span >
199
+ </ TooltipTrigger >
200
+ < TooltipContent className = "max-w-xs" >
201
+ { hasRequiredDiagnostic . summary || "Required parameter" }
202
+ </ TooltipContent >
203
+ </ Tooltip >
204
+ </ TooltipProvider >
205
+ ) }
189
206
</ Label >
190
207
191
208
{ Boolean ( parameter . description ) && (
@@ -558,21 +575,26 @@ const ParameterDiagnostics: FC<ParameterDiagnosticsProps> = ({
558
575
diagnostics,
559
576
} ) => {
560
577
return (
561
- < div className = "flex flex-col gap-2" >
562
- { diagnostics . map ( ( diagnostic , index ) => (
563
- < div
564
- key = { `parameter-diagnostic-${ diagnostic . summary } -${ index } ` }
565
- className = { `text-xs px-1 ${
566
- diagnostic . severity === "error"
567
- ? "text-content-destructive"
568
- : "text-content-warning"
569
- } `}
570
- >
571
- < p className = "font-medium" > { diagnostic . summary } </ p >
572
- { diagnostic . detail && < p className = "m-0" > { diagnostic . detail } </ p > }
573
- </ div >
574
- ) ) }
575
- </ div >
578
+ < >
579
+ { diagnostics . map ( ( diagnostic , index ) => {
580
+ if ( diagnostic . extra ?. code === "required" ) {
581
+ return null ;
582
+ }
583
+ return (
584
+ < div
585
+ key = { `parameter-diagnostic-${ diagnostic . summary } -${ index } ` }
586
+ className = { `text-xs px-1 ${
587
+ diagnostic . severity === "error"
588
+ ? "text-content-destructive"
589
+ : "text-content-warning"
590
+ } `}
591
+ >
592
+ < p className = "font-medium" > { diagnostic . summary } </ p >
593
+ { diagnostic . detail && < p className = "m-0" > { diagnostic . detail } </ p > }
594
+ </ div >
595
+ ) ;
596
+ } ) }
597
+ </ >
576
598
) ;
577
599
} ;
578
600
0 commit comments