@@ -12,7 +12,8 @@ import {
12
12
Text ,
13
13
} from '@invoke-ai/ui-library' ;
14
14
import { useStore } from '@nanostores/react' ;
15
- import { useAppDispatch } from 'app/store/storeHooks' ;
15
+ import { $onClickGoToModelManager } from 'app/store/nanostores/onClickGoToModelManager' ;
16
+ import { useAppDispatch , useAppSelector } from 'app/store/storeHooks' ;
16
17
import type { Group , PickerContextState } from 'common/components/Picker/Picker' ;
17
18
import { buildGroup , getRegex , Picker , usePickerContext } from 'common/components/Picker/Picker' ;
18
19
import { useDisclosure } from 'common/hooks/useBoolean' ;
@@ -22,6 +23,7 @@ import { BASE_COLOR_MAP } from 'features/modelManagerV2/subpanels/ModelManagerPa
22
23
import ModelImage from 'features/modelManagerV2/subpanels/ModelManagerPanel/ModelImage' ;
23
24
import { NavigateToModelManagerButton } from 'features/parameters/components/MainModel/NavigateToModelManagerButton' ;
24
25
import { API_BASE_MODELS , MODEL_TYPE_MAP , MODEL_TYPE_SHORT_MAP } from 'features/parameters/types/constants' ;
26
+ import { selectIsModelsTabDisabled } from 'features/system/store/configSlice' ;
25
27
import { setActiveTab } from 'features/ui/store/uiSlice' ;
26
28
import { filesize } from 'filesize' ;
27
29
import { memo , useCallback , useMemo , useRef } from 'react' ;
@@ -32,12 +34,23 @@ import type { AnyModelConfig, BaseModelType } from 'services/api/types';
32
34
const getOptionId = ( modelConfig : AnyModelConfig ) => modelConfig . key ;
33
35
34
36
const ModelManagerLink = memo ( ( props : ButtonProps ) => {
37
+ const onClickGoToModelManager = useStore ( $onClickGoToModelManager ) ;
35
38
const dispatch = useAppDispatch ( ) ;
36
39
const onClick = useCallback ( ( ) => {
37
40
dispatch ( setActiveTab ( 'models' ) ) ;
38
41
$installModelsTab . set ( 3 ) ;
39
42
} , [ dispatch ] ) ;
40
- return < Button size = "sm" flexGrow = { 0 } variant = "link" color = "base.200" onClick = { onClick } { ...props } /> ;
43
+
44
+ return (
45
+ < Button
46
+ size = "sm"
47
+ flexGrow = { 0 }
48
+ variant = "link"
49
+ color = "base.200"
50
+ onClick = { onClickGoToModelManager ?? onClick }
51
+ { ...props }
52
+ />
53
+ ) ;
41
54
} ) ;
42
55
ModelManagerLink . displayName = 'ModelManagerLink' ;
43
56
@@ -47,12 +60,17 @@ const components = {
47
60
48
61
const NoOptionsFallback = memo ( ( ) => {
49
62
const { t } = useTranslation ( ) ;
63
+ const isModelsTabDisabled = useAppSelector ( selectIsModelsTabDisabled ) ;
64
+ const onClickGoToModelManager = useStore ( $onClickGoToModelManager ) ;
65
+
50
66
return (
51
67
< Flex flexDir = "column" gap = { 4 } alignItems = "center" >
52
68
< Text color = "base.200" > { t ( 'modelManager.modelPickerFallbackNoModelsInstalled' ) } </ Text >
53
- < Text color = "base.200" >
54
- < Trans i18nKey = "modelManager.modelPickerFallbackNoModelsInstalled2" components = { components } />
55
- </ Text >
69
+ { ( ! isModelsTabDisabled || onClickGoToModelManager ) && (
70
+ < Text color = "base.200" >
71
+ < Trans i18nKey = "modelManager.modelPickerFallbackNoModelsInstalled2" components = { components } />
72
+ </ Text >
73
+ ) }
56
74
</ Flex >
57
75
) ;
58
76
} ) ;
0 commit comments