@@ -448,10 +448,20 @@ export function ChatActions(props: {
448
448
// switch model
449
449
const currentModel = chatStore . currentSession ( ) . mask . modelConfig . model ;
450
450
const allModels = useAllModels ( ) ;
451
- const models = useMemo (
452
- ( ) => allModels . filter ( ( m ) => m . available ) ,
453
- [ allModels ] ,
454
- ) ;
451
+ const models = useMemo ( ( ) => {
452
+ const filteredModels = allModels . filter ( ( m ) => m . available ) ;
453
+ const defaultModel = filteredModels . find ( ( m ) => m . isDefault ) ;
454
+
455
+ if ( defaultModel ) {
456
+ const arr = [
457
+ defaultModel ,
458
+ ...filteredModels . filter ( ( m ) => m !== defaultModel ) ,
459
+ ] ;
460
+ return arr ;
461
+ } else {
462
+ return filteredModels ;
463
+ }
464
+ } , [ allModels ] ) ;
455
465
const [ showModelSelector , setShowModelSelector ] = useState ( false ) ;
456
466
const [ showUploadImage , setShowUploadImage ] = useState ( false ) ;
457
467
@@ -467,7 +477,10 @@ export function ChatActions(props: {
467
477
// switch to first available model
468
478
const isUnavaliableModel = ! models . some ( ( m ) => m . name === currentModel ) ;
469
479
if ( isUnavaliableModel && models . length > 0 ) {
470
- const nextModel = models [ 0 ] . name as ModelType ;
480
+ // show next model to default model if exist
481
+ let nextModel : ModelType = (
482
+ models . find ( ( model ) => model . isDefault ) || models [ 0 ]
483
+ ) . name ;
471
484
chatStore . updateCurrentSession (
472
485
( session ) => ( session . mask . modelConfig . model = nextModel ) ,
473
486
) ;
@@ -1102,11 +1115,13 @@ function _Chat() {
1102
1115
} ;
1103
1116
// eslint-disable-next-line react-hooks/exhaustive-deps
1104
1117
} , [ ] ) ;
1105
-
1118
+
1106
1119
const handlePaste = useCallback (
1107
1120
async ( event : React . ClipboardEvent < HTMLTextAreaElement > ) => {
1108
1121
const currentModel = chatStore . currentSession ( ) . mask . modelConfig . model ;
1109
- if ( ! isVisionModel ( currentModel ) ) { return ; }
1122
+ if ( ! isVisionModel ( currentModel ) ) {
1123
+ return ;
1124
+ }
1110
1125
const items = ( event . clipboardData || window . clipboardData ) . items ;
1111
1126
for ( const item of items ) {
1112
1127
if ( item . kind === "file" && item . type . startsWith ( "image/" ) ) {
0 commit comments