@@ -31,52 +31,54 @@ const selector = createSelector(
3131 reasons . push ( 'No initial image selected' ) ;
3232 }
3333
34- if ( activeTabName === 'nodes' && nodes . shouldValidateGraph ) {
35- if ( ! nodes . nodes . length ) {
36- reasons . push ( 'No nodes in graph' ) ;
37- }
38-
39- nodes . nodes . forEach ( ( node ) => {
40- if ( ! isInvocationNode ( node ) ) {
41- return ;
34+ if ( activeTabName === 'nodes' ) {
35+ if ( nodes . shouldValidateGraph ) {
36+ if ( ! nodes . nodes . length ) {
37+ reasons . push ( 'No nodes in graph' ) ;
4238 }
4339
44- const nodeTemplate = nodes . nodeTemplates [ node . data . type ] ;
45-
46- if ( ! nodeTemplate ) {
47- // Node type not found
48- reasons . push ( 'Missing node template' ) ;
49- return ;
50- }
51-
52- const connectedEdges = getConnectedEdges ( [ node ] , nodes . edges ) ;
40+ nodes . nodes . forEach ( ( node ) => {
41+ if ( ! isInvocationNode ( node ) ) {
42+ return ;
43+ }
5344
54- forEach ( node . data . inputs , ( field ) => {
55- const fieldTemplate = nodeTemplate . inputs [ field . name ] ;
56- const hasConnection = connectedEdges . some (
57- ( edge ) =>
58- edge . target === node . id && edge . targetHandle === field . name
59- ) ;
45+ const nodeTemplate = nodes . nodeTemplates [ node . data . type ] ;
6046
61- if ( ! fieldTemplate ) {
62- reasons . push ( 'Missing field template' ) ;
47+ if ( ! nodeTemplate ) {
48+ // Node type not found
49+ reasons . push ( 'Missing node template' ) ;
6350 return ;
6451 }
6552
66- if (
67- fieldTemplate . required &&
68- field . value === undefined &&
69- ! hasConnection
70- ) {
71- reasons . push (
72- `${ node . data . label || nodeTemplate . title } -> ${
73- field . label || fieldTemplate . title
74- } missing input`
53+ const connectedEdges = getConnectedEdges ( [ node ] , nodes . edges ) ;
54+
55+ forEach ( node . data . inputs , ( field ) => {
56+ const fieldTemplate = nodeTemplate . inputs [ field . name ] ;
57+ const hasConnection = connectedEdges . some (
58+ ( edge ) =>
59+ edge . target === node . id && edge . targetHandle === field . name
7560 ) ;
76- return ;
77- }
61+
62+ if ( ! fieldTemplate ) {
63+ reasons . push ( 'Missing field template' ) ;
64+ return ;
65+ }
66+
67+ if (
68+ fieldTemplate . required &&
69+ field . value === undefined &&
70+ ! hasConnection
71+ ) {
72+ reasons . push (
73+ `${ node . data . label || nodeTemplate . title } -> ${
74+ field . label || fieldTemplate . title
75+ } missing input`
76+ ) ;
77+ return ;
78+ }
79+ } ) ;
7880 } ) ;
79- } ) ;
81+ }
8082 } else {
8183 if ( ! model ) {
8284 reasons . push ( 'No model selected' ) ;
0 commit comments