1
1
import React , { useState , useEffect } from 'react' ;
2
- import { Search , Loader , Check , ChevronDown , ChevronUp , X } from 'lucide-react' ;
2
+ import { Search , Check , ChevronDown , ChevronUp , X , Loader2 } from 'lucide-react' ;
3
3
import { AIService , ModelOption } from '../../services/ai-service' ;
4
4
import { SettingsService } from '../../services/settings-service' ;
5
5
@@ -57,15 +57,15 @@ export const SelectModelDialog: React.FC<SelectModelDialogProps> = ({
57
57
}
58
58
} ;
59
59
60
- const handleRefresh = async ( ) => {
61
- try {
62
- await aiService . refreshModels ( ) ;
63
- const refreshedModels = await aiService . getCachedAllModels ( ) ;
64
- setModels ( refreshedModels ) ;
65
- } catch ( error ) {
66
- console . error ( "Error refreshing models:" , error ) ;
67
- }
68
- } ;
60
+ // const handleRefresh = async () => {
61
+ // try {
62
+ // await aiService.refreshModels();
63
+ // const refreshedModels = await aiService.getCachedAllModels();
64
+ // setModels(refreshedModels);
65
+ // } catch (error) {
66
+ // console.error("Error refreshing models:", error);
67
+ // }
68
+ // };
69
69
70
70
const handleSearch = ( e : React . ChangeEvent < HTMLInputElement > ) => {
71
71
setSearchQuery ( e . target . value ) ;
@@ -110,9 +110,15 @@ export const SelectModelDialog: React.FC<SelectModelDialogProps> = ({
110
110
if ( ! isOpen ) return null ;
111
111
112
112
return (
113
- < div className = "fixed inset-0 z-40 flex items-center justify-center bg-[#00000033]" >
114
- < div className = "flex flex-col w-3/4 p-4 h-4/5 select-model-dialog" >
115
- < div className = "flex items-center justify-between pb-2 border-b border-gray-700" >
113
+ < div
114
+ className = "fixed inset-0 z-40 flex items-center justify-center bg-[#00000033] fade-in app-region-no-drag"
115
+ onClick = { onClose }
116
+ >
117
+ < div
118
+ className = "flex flex-col w-3/4 p-4 h-4/5 select-model-dialog move-in"
119
+ onClick = { ( e ) => e . stopPropagation ( ) }
120
+ >
121
+ < div className = "flex items-center justify-between pb-2 border-b frame-separator-border-color" >
116
122
< h2 className = "p-2 text-xl font-semibold" > Select Model</ h2 >
117
123
< button
118
124
onClick = { onClose }
@@ -123,37 +129,37 @@ export const SelectModelDialog: React.FC<SelectModelDialogProps> = ({
123
129
</ button >
124
130
</ div >
125
131
126
- < div className = "flex items-center justify-between p-4 border-b border-gray-700 " >
132
+ < div className = "flex items-center justify-between p-4 border-b frame-separator-border-color " >
127
133
< div className = "relative flex-1 max-w-md" >
128
134
< input
129
135
type = "text"
130
136
placeholder = "Search models..."
131
137
value = { searchQuery }
132
138
onChange = { handleSearch }
133
- className = "w-full p-2 pl-10 text-white bg-gray-800 border border-gray-700 rounded-md focus:border-blue-500 focus:outline-none "
139
+ className = "w-full p-2 pl-10 rounded-md input-box "
134
140
/>
135
- < div className = "absolute text-gray-400 transform -translate-y-1/2 left-3 top-1/2" >
141
+ < div className = "absolute transform -translate-y-1/2 left-3 top-1/2" >
136
142
< Search size = { 16 } />
137
143
</ div >
138
144
</ div >
139
145
140
- < button
146
+ { /* <button
141
147
onClick={handleRefresh}
142
148
disabled={isLoading}
143
149
className="flex items-center gap-2 px-4 py-2 ml-4 text-white bg-blue-600 rounded-md hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed"
144
150
>
145
151
{isLoading ? (
146
- < Loader className = "animate-spin" size = { 16 } />
152
+ <Loader2 className="animate-spin" size={16} />
147
153
) : (
148
154
'Refresh Models'
149
155
)}
150
- </ button >
156
+ </button> */ }
151
157
</ div >
152
158
153
159
< div className = "flex-1 p-4 overflow-y-auto" >
154
160
{ isLoading && models . length === 0 ? (
155
161
< div className = "flex flex-col items-center justify-center h-64" >
156
- < Loader className = "mb-4 text-4xl text-blue-500 animate-spin" size = { 40 } />
162
+ < Loader2 className = "mb-4 text-4xl text-blue-500 animate-spin" size = { 40 } />
157
163
< p className = "text-gray-400" > Loading available models...</ p >
158
164
</ div >
159
165
) : filteredModels . length === 0 ? (
@@ -166,10 +172,10 @@ export const SelectModelDialog: React.FC<SelectModelDialogProps> = ({
166
172
< div key = { providerId } className = "mb-6" >
167
173
168
174
< div className = "flex items-start justify-start" >
169
- < h3 className = "mb-2 text-lg font-medium text-white " > { getProviderName ( providerId ) } </ h3 >
175
+ < h3 className = "mb-2 text-lg font-medium" > { getProviderName ( providerId ) } </ h3 >
170
176
< button
171
177
onClick = { ( ) => handleCollapseProvider ( providerId ) }
172
- className = "p-1 ml-2 text-gray-400 bg-gray-800 rounded-md hover:text-white "
178
+ className = "p-1 ml-2 select-model-dialog-expand-button "
173
179
>
174
180
{ collapsedList . get ( providerId ) ? < ChevronDown size = { 16 } /> : < ChevronUp size = { 16 } /> }
175
181
</ button >
@@ -182,8 +188,8 @@ export const SelectModelDialog: React.FC<SelectModelDialogProps> = ({
182
188
onClick = { ( ) => handleSelectModel ( model , providerId ) }
183
189
className = { `flex items-center justify-between p-3 rounded-lg cursor-pointer ${
184
190
( selectedModelId === model . id && selectedProviderId === providerId )
185
- ? 'bg-blue-600 text-white '
186
- : 'bg-gray-800 text-gray-200 hover:bg-gray-700 '
191
+ ? 'settings-provider-item-selected settings-provider-item-selected-text '
192
+ : 'settings-provider-item settings-provider-item-tex '
187
193
} `}
188
194
>
189
195
< div className = "flex-1" >
@@ -195,7 +201,7 @@ export const SelectModelDialog: React.FC<SelectModelDialogProps> = ({
195
201
) }
196
202
</ div >
197
203
{ ( selectedModelId === model . id && selectedProviderId === providerId ) && (
198
- < div className = "ml-4 text-white " >
204
+ < div className = "ml-4" >
199
205
< Check size = { 16 } />
200
206
</ div >
201
207
) }
0 commit comments