@@ -14,36 +14,36 @@ import {
1414 Tooltip ,
1515 TooltipInfoButton ,
1616 TooltipTrigger ,
17- } from " @stacklok/ui-kit" ;
18- import { twMerge } from " tailwind-merge" ;
19- import { useMutationPreferredModelWorkspace } from " ../hooks/use-mutation-preferred-model-workspace" ;
17+ } from ' @stacklok/ui-kit'
18+ import { twMerge } from ' tailwind-merge'
19+ import { useMutationPreferredModelWorkspace } from ' ../hooks/use-mutation-preferred-model-workspace'
2020import {
2121 MuxMatcherType ,
2222 V1ListAllModelsForAllProvidersResponse ,
23- } from " @/api/generated" ;
24- import { FormEvent } from " react" ;
23+ } from ' @/api/generated'
24+ import { FormEvent } from ' react'
2525import {
2626 LayersThree01 ,
2727 LinkExternal01 ,
2828 Plus ,
2929 Trash01 ,
30- } from " @untitled-ui/icons-react" ;
31- import { SortableArea } from " @/components/SortableArea" ;
32- import { WorkspaceModelsDropdown } from " ./workspace-models-dropdown" ;
33- import { useQueryListAllModelsForAllProviders } from " @/hooks/use-query-list-all-models-for-all-providers" ;
34- import { useQueryMuxingRulesWorkspace } from " ../hooks/use-query-muxing-rules-workspace" ;
30+ } from ' @untitled-ui/icons-react'
31+ import { SortableArea } from ' @/components/SortableArea'
32+ import { WorkspaceModelsDropdown } from ' ./workspace-models-dropdown'
33+ import { useQueryListAllModelsForAllProviders } from ' @/hooks/use-query-list-all-models-for-all-providers'
34+ import { useQueryMuxingRulesWorkspace } from ' ../hooks/use-query-muxing-rules-workspace'
3535import {
3636 PreferredMuxRule ,
3737 useMuxingRulesFormState ,
38- } from " ../hooks/use-muxing-rules-form-workspace" ;
39- import { FormButtons } from " @/components/FormButtons" ;
38+ } from ' ../hooks/use-muxing-rules-form-workspace'
39+ import { FormButtons } from ' @/components/FormButtons'
4040
4141function MissingProviderBanner ( ) {
4242 return (
4343 // TODO needs to update the related ui-kit component that diverges from the design
4444 < Alert
4545 variant = "warning"
46- className = "bg-brand-200 text-primary font-normal dark:bg-[#272472]"
46+ className = "bg-brand-200 font-normal text-primary dark:bg-[#272472]"
4747 title = "You must configure at least one provider before selecting your desired model."
4848 >
4949 < LinkButton
@@ -53,19 +53,19 @@ function MissingProviderBanner() {
5353 Configure a provider
5454 </ LinkButton >
5555 </ Alert >
56- ) ;
56+ )
5757}
5858
5959type SortableItemProps = {
60- index : number ;
61- rule : PreferredMuxRule ;
62- models : V1ListAllModelsForAllProvidersResponse ;
63- isArchived : boolean ;
64- showRemoveButton : boolean ;
65- isDefaultRule : boolean ;
66- setRuleItem : ( rule : PreferredMuxRule ) => void ;
67- removeRule : ( index : number ) => void ;
68- } ;
60+ index : number
61+ rule : PreferredMuxRule
62+ models : V1ListAllModelsForAllProvidersResponse
63+ isArchived : boolean
64+ showRemoveButton : boolean
65+ isDefaultRule : boolean
66+ setRuleItem : ( rule : PreferredMuxRule ) => void
67+ removeRule : ( index : number ) => void
68+ }
6969
7070function SortableItem ( {
7171 rule,
@@ -77,18 +77,17 @@ function SortableItem({
7777 isArchived,
7878 isDefaultRule,
7979} : SortableItemProps ) {
80- const placeholder = isDefaultRule ? " Catch All" : " eg file type, file name" ;
80+ const placeholder = isDefaultRule ? ' Catch All' : ' eg file type, file name'
8181 return (
8282 < div className = "flex items-center gap-2" key = { rule . id } >
8383 < div className = "flex w-full justify-between" >
8484 < TextField
8585 aria-labelledby = "filter-by-label-id"
86- onFocus = { ( event ) => event . preventDefault ( ) }
87- value = { rule ?. matcher ?? "" }
86+ value = { rule ?. matcher ?? '' }
8887 isDisabled = { isArchived || isDefaultRule }
8988 name = "matcher"
9089 onChange = { ( matcher ) => {
91- setRuleItem ( { ...rule , matcher } ) ;
90+ setRuleItem ( { ...rule , matcher } )
9291 } }
9392 >
9493 < Input placeholder = { placeholder } />
@@ -117,61 +116,61 @@ function SortableItem({
117116 ) }
118117 </ div >
119118 </ div >
120- ) ;
119+ )
121120}
122121
123122export function WorkspaceMuxingModel ( {
124123 className,
125124 workspaceName,
126125 isArchived,
127126} : {
128- className ?: string ;
129- workspaceName : string ;
130- isArchived : boolean | undefined ;
127+ className ?: string
128+ workspaceName : string
129+ isArchived : boolean | undefined
131130} ) {
132131 const { data : muxingRules , isPending } =
133- useQueryMuxingRulesWorkspace ( workspaceName ) ;
132+ useQueryMuxingRulesWorkspace ( workspaceName )
134133 const { addRule, setRules, setRuleItem, removeRule, formState } =
135- useMuxingRulesFormState ( muxingRules ) ;
134+ useMuxingRulesFormState ( muxingRules )
136135 const {
137136 values : { rules } ,
138- } = formState ;
137+ } = formState
139138
140- const { mutateAsync } = useMutationPreferredModelWorkspace ( ) ;
141- const { data : providerModels = [ ] } = useQueryListAllModelsForAllProviders ( ) ;
142- const isModelsEmpty = ! isPending && providerModels . length === 0 ;
143- const showRemoveButton = rules . length > 1 ;
139+ const { mutateAsync } = useMutationPreferredModelWorkspace ( )
140+ const { data : providerModels = [ ] } = useQueryListAllModelsForAllProviders ( )
141+ const isModelsEmpty = ! isPending && providerModels . length === 0
142+ const showRemoveButton = rules . length > 1
144143
145144 const handleSubmit = ( event : FormEvent ) => {
146- event . preventDefault ( ) ;
145+ event . preventDefault ( )
147146 mutateAsync (
148147 {
149148 path : { workspace_name : workspaceName } ,
150149 body : rules . map ( ( { id, ...rest } ) => {
151- void id ;
150+ void id
152151
153152 return rest . matcher
154153 ? { ...rest , matcher_type : MuxMatcherType . FILENAME_MATCH }
155- : { ...rest } ;
154+ : { ...rest }
156155 } ) ,
157156 } ,
158157 {
159158 onSuccess : ( ) => {
160- formState . setInitialValues ( { rules } ) ;
159+ formState . setInitialValues ( { rules } )
161160 } ,
162- } ,
163- ) ;
164- } ;
161+ }
162+ )
163+ }
165164
166165 if ( isModelsEmpty ) {
167166 return (
168- < Card className = { twMerge ( className , " shrink-0" ) } >
167+ < Card className = { twMerge ( className , ' shrink-0' ) } >
169168 < CardBody className = "flex flex-col gap-2" >
170169 < Text className = "text-primary" > Model Muxing</ Text >
171170 < MissingProviderBanner />
172171 </ CardBody >
173172 </ Card >
174- ) ;
173+ )
175174 }
176175
177176 return (
@@ -180,11 +179,11 @@ export function WorkspaceMuxingModel({
180179 validationBehavior = "aria"
181180 data-testid = "preferred-model"
182181 >
183- < Card className = { twMerge ( className , " shrink-0" ) } >
182+ < Card className = { twMerge ( className , ' shrink-0' ) } >
184183 < CardBody className = "flex flex-col gap-6" >
185184 < div className = "flex flex-col justify-start" >
186185 < Text className = "text-primary" > Model Muxing</ Text >
187- < Text className = "flex items-center gap-1 text-secondary mb-0 text-balance " >
186+ < Text className = "mb-0 flex items-center gap-1 text-balance text-secondary " >
188187 Select the model you would like to use in this workspace. This
189188 section applies only if you are using the MUX endpoint.
190189 < Link
@@ -198,7 +197,7 @@ export function WorkspaceMuxingModel({
198197 </ Text >
199198 </ div >
200199
201- < div className = "flex flex-col gap-2 w-full " >
200+ < div className = "flex w-full flex-col gap-2" >
202201 < div className = "flex gap-2" >
203202 < div className = "w-12" > </ div >
204203 < div className = "w-full" >
@@ -224,7 +223,7 @@ export function WorkspaceMuxingModel({
224223 disableDragByIndex = { rules . length - 1 }
225224 >
226225 { ( rule , index ) => {
227- const isDefaultRule = rules . length - 1 === index ;
226+ const isDefaultRule = rules . length - 1 === index
228227 return (
229228 < SortableItem
230229 key = { rule . id }
@@ -237,7 +236,7 @@ export function WorkspaceMuxingModel({
237236 isArchived = { ! ! isArchived }
238237 isDefaultRule = { isDefaultRule }
239238 />
240- ) ;
239+ )
241240 } }
242241 </ SortableArea >
243242 </ div >
@@ -265,5 +264,5 @@ export function WorkspaceMuxingModel({
265264 </ CardFooter >
266265 </ Card >
267266 </ Form >
268- ) ;
267+ )
269268}
0 commit comments