@@ -12,6 +12,11 @@ import { sentImageToCanvas } from 'features/gallery/store/actions';
12
12
import { parseAndRecallAllMetadata } from 'features/metadata/util/handlers' ;
13
13
import { $hasTemplates } from 'features/nodes/store/nodesSlice' ;
14
14
import { $isWorkflowLibraryModalOpen } from 'features/nodes/store/workflowLibraryModal' ;
15
+ import {
16
+ $workflowLibraryTagOptions ,
17
+ workflowLibraryTagsReset ,
18
+ workflowLibraryTagToggled ,
19
+ } from 'features/nodes/store/workflowLibrarySlice' ;
15
20
import { $isStylePresetsMenuOpen , activeStylePresetIdChanged } from 'features/stylePresets/store/stylePresetSlice' ;
16
21
import { toast } from 'features/toast/toast' ;
17
22
import { activeTabCanvasRightPanelChanged , setActiveTab } from 'features/ui/store/uiSlice' ;
@@ -30,9 +35,17 @@ type SendToCanvasAction = _StudioInitAction<'sendToCanvas', { imageName: string
30
35
type UseAllParametersAction = _StudioInitAction < 'useAllParameters' , { imageName : string } > ;
31
36
type StudioDestinationAction = _StudioInitAction <
32
37
'goToDestination' ,
33
- { destination : 'generation' | 'canvas' | 'workflows' | 'upscaling' | 'viewAllWorkflows' | 'viewAllStylePresets' }
38
+ {
39
+ destination :
40
+ | 'generation'
41
+ | 'canvas'
42
+ | 'workflows'
43
+ | 'upscaling'
44
+ | 'viewAllWorkflows'
45
+ | 'viewAllWorkflowsRecommended'
46
+ | 'viewAllStylePresets' ;
47
+ }
34
48
> ;
35
-
36
49
// Use global state to show loader until we are ready to render the studio.
37
50
export const $didStudioInit = atom ( false ) ;
38
51
@@ -58,6 +71,7 @@ export const useStudioInitAction = (action?: StudioInitAction) => {
58
71
const didParseOpenAPISchema = useStore ( $hasTemplates ) ;
59
72
const store = useAppStore ( ) ;
60
73
const loadWorkflowWithDialog = useLoadWorkflowWithDialog ( ) ;
74
+ const workflowLibraryTagOptions = useStore ( $workflowLibraryTagOptions ) ;
61
75
62
76
const handleSendToCanvas = useCallback (
63
77
async ( imageName : string ) => {
@@ -173,14 +187,25 @@ export const useStudioInitAction = (action?: StudioInitAction) => {
173
187
store . dispatch ( setActiveTab ( 'workflows' ) ) ;
174
188
$isWorkflowLibraryModalOpen . set ( true ) ;
175
189
break ;
190
+ case 'viewAllWorkflowsRecommended' :
191
+ // Go to the workflows tab and open the workflow library modal with the recommended workflows view
192
+ store . dispatch ( setActiveTab ( 'workflows' ) ) ;
193
+ $isWorkflowLibraryModalOpen . set ( true ) ;
194
+ store . dispatch ( workflowLibraryTagsReset ( ) ) ;
195
+ for ( const tag of workflowLibraryTagOptions ) {
196
+ if ( tag . recommended ) {
197
+ store . dispatch ( workflowLibraryTagToggled ( tag . label ) ) ;
198
+ }
199
+ }
200
+ break ;
176
201
case 'viewAllStylePresets' :
177
202
// Go to the canvas tab and open the style presets menu
178
203
store . dispatch ( setActiveTab ( 'canvas' ) ) ;
179
204
$isStylePresetsMenuOpen . set ( true ) ;
180
205
break ;
181
206
}
182
207
} ,
183
- [ store ]
208
+ [ store , workflowLibraryTagOptions ]
184
209
) ;
185
210
186
211
const handleStudioInitAction = useCallback (
0 commit comments