Sync acceptance criteria toggle state to children
linter / quality (pull_request) Successful in 1m16s
tests / ci (8.4) (pull_request) Failing after 1m38s

This commit is contained in:
2026-05-20 13:34:28 +00:00
parent 4fb25ccecd
commit 2bc7745e53
4 changed files with 201 additions and 11 deletions
+28
View File
@@ -65,6 +65,34 @@ export const buildAcceptanceCriteria = (
return normalizeAcceptanceCriteria(parseChecklistLines(checklistInput));
};
export const syncAcceptanceCriteriaDescendantCheckedState = (
items: AcceptanceCriteriaModel,
index: number,
checked: boolean,
): AcceptanceCriteriaModel => {
if (index < 0 || index >= items.length) {
return items;
}
const parentIndent = items[index]?.indent ?? 0;
return items.map((item, itemIndex) => {
if (itemIndex === index) {
return { ...item, checked };
}
if (itemIndex < index) {
return item;
}
if (item.indent <= parentIndent) {
return item;
}
return { ...item, checked };
});
};
export const acceptanceCriteriaToEditorState = (
value: AcceptanceCriteriaModel | null | undefined,
): AcceptanceCriteriaEditorState => {