File tree Expand file tree Collapse file tree 2 files changed +9
-5
lines changed
invokeai/frontend/web/src/features/nodes
components/sidePanel/workflow Expand file tree Collapse file tree 2 files changed +9
-5
lines changed Original file line number Diff line number Diff line change @@ -6,7 +6,7 @@ import { $templates } from 'features/nodes/store/nodesSlice';
6
6
import {
7
7
selectNodes ,
8
8
selectNodesSlice ,
9
- selectWorkflowFormNodeFieldFieldIdentifiers ,
9
+ selectWorkflowFormNodeFieldFieldIdentifiersDeduped ,
10
10
selectWorkflowId ,
11
11
} from 'features/nodes/store/selectors' ;
12
12
import type { Templates } from 'features/nodes/store/types' ;
@@ -54,7 +54,7 @@ export const useIsValidationRunInProgress = () => {
54
54
} ;
55
55
56
56
export const selectFieldIdentifiersWithInvocationTypes = createSelector (
57
- selectWorkflowFormNodeFieldFieldIdentifiers ,
57
+ selectWorkflowFormNodeFieldFieldIdentifiersDeduped ,
58
58
selectNodesSlice ,
59
59
( fieldIdentifiers , nodes ) => {
60
60
const result : FieldIdentiferWithLabelAndType [ ] = [ ] ;
Original file line number Diff line number Diff line change 1
1
import type { Selector } from '@reduxjs/toolkit' ;
2
2
import { createSelector } from '@reduxjs/toolkit' ;
3
3
import type { RootState } from 'app/store/store' ;
4
+ import { uniqBy } from 'es-toolkit/compat' ;
4
5
import { getElement } from 'features/nodes/components/sidePanel/builder/form-manipulation' ;
5
6
import type { NodesState } from 'features/nodes/store/types' ;
6
7
import type { FieldInputInstance } from 'features/nodes/types/field' ;
@@ -93,13 +94,16 @@ export const selectFormInitialValues = createNodesSelector((workflow) => workflo
93
94
export const selectNodeFieldElements = createNodesSelector ( ( workflow ) =>
94
95
Object . values ( workflow . form . elements ) . filter ( isNodeFieldElement )
95
96
) ;
96
- export const selectWorkflowFormNodeFieldFieldIdentifiers = createSelector (
97
+ export const selectWorkflowFormNodeFieldFieldIdentifiersDeduped = createSelector (
97
98
selectNodeFieldElements ,
98
- ( nodeFieldElements ) => nodeFieldElements . map ( ( el ) => el . data . fieldIdentifier )
99
+ ( nodeFieldElements ) =>
100
+ uniqBy ( nodeFieldElements , ( el ) => `${ el . data . fieldIdentifier . nodeId } -${ el . data . fieldIdentifier . fieldName } ` ) . map (
101
+ ( el ) => el . data . fieldIdentifier
102
+ )
99
103
) ;
100
104
101
105
export const buildSelectElement = ( id : string ) => createNodesSelector ( ( workflow ) => workflow . form ?. elements [ id ] ) ;
102
106
export const buildSelectWorkflowFormNodeExists = ( nodeId : string , fieldName : string ) =>
103
- createSelector ( selectWorkflowFormNodeFieldFieldIdentifiers , ( identifiers ) =>
107
+ createSelector ( selectWorkflowFormNodeFieldFieldIdentifiersDeduped , ( identifiers ) =>
104
108
identifiers . some ( ( identifier ) => identifier . nodeId === nodeId && identifier . fieldName === fieldName )
105
109
) ;
You can’t perform that action at this time.
0 commit comments