@@ -177,37 +177,29 @@ const Editor = () => {
177177
178178 setGridData ( ( prev ) => {
179179 console . log ( "handleSaveRow prev" , prev ) ;
180- // if (!prev || isRowEmpty(row)) {
181- // alert("Cannot save empty row.");
182- // //TODO: remove row from grid
183- // return prev;
184- // }
185-
186- // const previousRow = prev.find((r) => r.id === row.id);
187- // if (row.node.length > StateNameMaxLength) {
188- // alert(
189- // `State name cannot be more than ${StateNameMaxLength} characters.`
190- // );
191- // return prev.map((r) =>
192- // r.id === row.id ? { ...r, node: previousRow.node } : r
193- // );
194- // }
195-
196180 let availableNodeValues = prev . map ( ( r ) => r . node ) . filter ( ( v ) => v !== "" ) ;
197181 if ( ! availableNodeValues . includes ( row . node ) )
198182 availableNodeValues . push ( row . node ) ;
199183
200184 console . log ( "availableNodeValues" , availableNodeValues ) ;
201185
202- const areTransitionValuesInvalid = [
203- row . a !== "" && ! availableNodeValues . includes ( row . a ) ,
204- row . b !== "" && ! availableNodeValues . includes ( row . b ) ,
205- row . nul !== "" && ! availableNodeValues . includes ( row . nul ) ,
206- ] ;
186+ const nulPossibleTransitionValues = PossibleTransitionValues . map ( ( v ) =>
187+ v === "^" ? "nul" : v
188+ ) ;
189+ const areTransitionValuesInvalid = nulPossibleTransitionValues . some (
190+ ( key ) => {
191+ const transitionValues = row [ key ]
192+ . toString ( )
193+ . split ( " " )
194+ . filter ( ( v ) => v !== "" ) ;
195+ return transitionValues . some ( ( v ) => ! availableNodeValues . includes ( v ) ) ;
196+ }
197+ ) ;
198+
207199 console . log ( "areTransitionValuesInvalid" , areTransitionValuesInvalid ) ;
208- if ( areTransitionValuesInvalid . includes ( true ) ) {
200+ if ( areTransitionValuesInvalid ) {
209201 alert (
210- `Transition values must be empty or one of the following: ${ availableNodeValues . join (
202+ `Transition values must be empty or from the following: ${ availableNodeValues . join (
211203 ", "
212204 ) } `
213205 ) ;
@@ -265,6 +257,25 @@ const Editor = () => {
265257 setBoxes ( ( prev ) =>
266258 prev . map ( ( b ) => ( b . id === previousRow . node ? { ...b , id : row . node } : b ) )
267259 ) ;
260+
261+ setLines ( ( prev ) =>
262+ prev . map ( ( l ) =>
263+ l . props . start === previousRow . node && l . props . end === previousRow . node
264+ ? {
265+ ...l ,
266+ props : {
267+ ...l . props ,
268+ start : row . node ,
269+ end : row . node ,
270+ } ,
271+ }
272+ : l . props . start === previousRow . node
273+ ? { ...l , props : { ...l . props , start : row . node } }
274+ : l . props . end === previousRow . node
275+ ? { ...l , props : { ...l . props , end : row . node } }
276+ : l
277+ )
278+ ) ;
268279 } ;
269280
270281 const toggleInitialState = ( row : RowModel ) => {
0 commit comments