Skip to content

Commit f95998b

Browse files
committed
fixed not saving state name correctly when edited from Transition Table
1 parent b022bd1 commit f95998b

File tree

1 file changed

+34
-23
lines changed

1 file changed

+34
-23
lines changed

src/components/Editor.tsx

Lines changed: 34 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)